2016-06-09 4 views
0

안드로이드 앱에서 화상 채팅을 위해 Web Rtc를 구현하려고하는데 오류가 표시됩니다.Android WEB RTC

E/rtc: # 
    # Fatal error in ../../webrtc/modules/audio_device/android/audio_manager.cc, line 77 
    # Check failed: HasDeviceObjects() 
    # 
    # 

build.gradle 및 NDK 지원에 대한 의존성도 추가되었습니다.

컴파일 'io.pristine : libjingle : AAR @ 9127'여기

ndk { 
     moduleName "my-module-name" 
     cFlags "-std=c++11 -fexceptions" 
     ldLibs "log" 
     stl "gnustl_shared" 
     abiFilter "armeabi-v7a" 
    } 

public class MainActivity extends AppCompatActivity { 

Button cam1; 
VideoRenderer videoRenderer; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    cam1=(Button)findViewById(R.id.button1); 
    final PeerConnectionFactory peerConnectionFactory=new PeerConnectionFactory(); 
    PeerConnectionFactory.initializeAndroidGlobals(this, true, true, true, true); 

    //Acquiring source info 
    int no_of_cams = VideoCapturerAndroid.getDeviceCount(); // no of sources 
    final String sec_cam = VideoCapturerAndroid.getNameOfFrontFacingDevice(); // sec_cam name 
    final String pri_cam = VideoCapturerAndroid.getNameOfBackFacingDevice(); // pri_cam name 
    final VideoCapturer capturer1 = VideoCapturerAndroid.create(sec_cam); //capturer for sec_cam 
    final MediaConstraints videoConstraints = new MediaConstraints(); 
    final MediaConstraints audioConstraints = new MediaConstraints(); 

    //creating GLSurface 
    GLSurfaceView glSurfaceView=(GLSurfaceView)findViewById(R.id.gl); 
    //video renderer gui 
    VideoRendererGui.setView(glSurfaceView,null); 
    try { 
     videoRenderer=VideoRendererGui.createGui(0,0,100,100, 
       VideoRendererGui.ScalingType.SCALE_ASPECT_FILL,false); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    // Front Cam Action 
    cam1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // setting up tracks from sources 
      VideoSource videoSource = peerConnectionFactory.createVideoSource(capturer1,videoConstraints); 
      VideoTrack videoTrack = peerConnectionFactory.createVideoTrack(sec_cam, videoSource); 
      AudioSource audioSource = peerConnectionFactory.createAudioSource(audioConstraints); 
      AudioTrack audioTrack = peerConnectionFactory.createAudioTrack(sec_cam,audioSource); 
      // adding video to renderer 
      videoTrack.addRenderer(videoRenderer); 
      MediaStream mediaStream=peerConnectionFactory.createLocalMediaStream(sec_cam); 
      mediaStream.addTrack(videoTrack); 
      mediaStream.addTrack(audioTrack); 
     } 
    });}} 
+0

어디에서 오류가 발생합니까? 몇 가지 코드를 넣을 수 있습니까? –

+0

가능한 [setVideoURI가 치명적 신호 6 (SIGABRT)을 유발할 수 있습니다] (http://stackoverflow.com/questions/26616513/setvideouri-causes-fatal-signal-6sigabrt) –

답변

0

통화 initializeAndroidGlobals 먼저 코드입니다.

PeerConnectionFactory.initializeAndroidGlobals(this, true, true, true, true); 
final PeerConnectionFactory peerConnectionFactory=new PeerConnectionFactory();