WebRTC - создать объект PeerConnectionFactory - PullRequest
2 голосов
/ 10 марта 2019

Ранее я использовал WebRTC 1.0.22672, теперь я перешел на последнюю версию 1.0.26885.Ранее я использовал этот код для создания PeerConnectionFactory и VideoSource Object, и он работал нормально:

PeerConnectionFactory.InitializationOptions initializationOptions =
            PeerConnectionFactory.InitializationOptions.builder(this)
                    .createInitializationOptions();
    PeerConnectionFactory.initialize(initializationOptions);

    //Create a new PeerConnectionFactory instance - using Hardware encoder and decoder.
    PeerConnectionFactory.Options options = new PeerConnectionFactory.Options();
    DefaultVideoEncoderFactory defaultVideoEncoderFactory = new DefaultVideoEncoderFactory(
            rootEglBase.getEglBaseContext(),  /* enableIntelVp8Encoder */true,  /* enableH264HighProfile */true);
    DefaultVideoDecoderFactory defaultVideoDecoderFactory = new DefaultVideoDecoderFactory(rootEglBase.getEglBaseContext());
    peerConnectionFactory = new PeerConnectionFactory(options, defaultVideoEncoderFactory, defaultVideoDecoderFactory);


    //Now create a VideoCapturer instance.
    VideoCapturer videoCapturerAndroid;
    videoCapturerAndroid = createCameraCapturer(new Camera1Enumerator(false));


    //Create MediaConstraints - Will be useful for specifying video and audio constraints.
    audioConstraints = new MediaConstraints();
    videoConstraints = new MediaConstraints();

    //Create a VideoSource instance
    if (videoCapturerAndroid != null) {
        videoSource = peerConnectionFactory.createVideoSource(videoCapturerAndroid);
    }

, но в последней версии у меня есть две ошибки на new PeerConnectionFactory..., которые говорят:

'PeerConnectionFactory (long) 'не является публичным в' org.webrtc.PeerConnectionFactory '.Не может быть получен доступ из внешнего пакета.webrtc.VideoCapturer)

Как я могу решить эти ошибки?

и может кто-нибудь сказать мне, ПОЧЕМУ нет документации или журнала изменений для нативного андроида WebRTC?!

1 Ответ

5 голосов
/ 11 марта 2019

Как я могу решить эти ошибки?

Многие API устарели или удалены из последней версии WebRTC.Чтобы устранить эти ошибки, выполните следующие шаги:

Шаг 1: Измените код с

peerConnectionFactory = new PeerConnectionFactory(options, defaultVideoEncoderFactory, defaultVideoDecoderFactory);

на

peerConnectionFactory = PeerConnectionFactory.builder()
        .setOptions(options)
        .setVideoEncoderFactory(defaultVideoEncoderFactory)
        .setVideoDecoderFactory(defaultVideoDecoderFactory)
        .createPeerConnectionFactory();

Шаг 2 : Измените ваш код с

//Create a VideoSource instance
if (videoCapturerAndroid != null) {
    videoSource = peerConnectionFactory.createVideoSource(videoCapturerAndroid);
}

на

//Create a VideoSource instance
if (videoCapturerAndroid != null) {
    SurfaceTextureHelper surfaceTextureHelper = SurfaceTextureHelper.create("CaptureThread", rootEglBase.getEglBaseContext());
    videoSource = peerConnectionFactory.createVideoSource(videoCapturerAndroid.isScreencast());
    videoCapturerAndroid.initialize(surfaceTextureHelper, getApplicationContext(), videoSource.getCapturerObserver());
}

Может кто-нибудь сказать, ПОЧЕМУ нет документации или журнала изменений для нативного андроида WebRTC?

Журнал изменений находится по адресу

https://webrtc.googlesource.com/src/+log

Примечание: О ваших проблемах, вы можете перейти по ссылке ниже для получения дополнительной информациидетали.

https://groups.google.com/forum/#!topic/discuss-webrtc/gwJP5Sf0cdE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...