首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android WEB RTC

Android WEB RTC
EN

Stack Overflow用户
提问于 2016-06-09 06:52:40
回答 1查看 678关注 0票数 1

我正试图在我的android应用程序中实现Web,用于视频聊天,但出现了一个错误。

代码语言:javascript
复制
E/rtc: #
   # Fatal error in ../../webrtc/modules/audio_device/android/audio_manager.cc, line 77
   # Check failed: HasDeviceObjects()
   # 
   #

我也在build.gradle和NDK支持中添加了依赖项。

编译'io.pristine:libjingle:9127@aar‘

代码语言:javascript
复制
ndk {
        moduleName "my-module-name"
        cFlags "-std=c++11 -fexceptions"
        ldLibs "log"
        stl "gnustl_shared"
        abiFilter "armeabi-v7a"
    }

这是代码

代码语言:javascript
复制
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);
        }
    });}}
EN

回答 1

Stack Overflow用户

发布于 2017-11-21 06:18:37

先打电话给initializeAndroidGlobals。

代码语言:javascript
复制
PeerConnectionFactory.initializeAndroidGlobals(this, true, true, true, true);
final PeerConnectionFactory peerConnectionFactory=new PeerConnectionFactory();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37718768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档