Vonage 屏幕共享不起作用

问题描述

我在 android studio java 中使用 vonage api 的屏幕共享。我遵循了他们的文档,但问题是:当我尝试共享屏幕时,它从相机发送视频而不是屏幕捕获。这是代码片段,(在另外,我是否需要使用不同的 API 密钥、会话 ID 进行屏幕共享,与视频共享 api 不同)

@Override
public void onConnected(Session session) {
    Log.d(TAG,"onConnected: Connected to session " + session.getSessionId());

    mpublisher = new Publisher.Builder(MainActivity.this).name("publisher").build();
    mpublisher.setPublisherListener(this);
    mpublisher.setPublisherVideoType(PublisherKit.PublisherKitVideoType.PublisherKitVideoTypeScreen);
    mpublisher.setAudioFallbackEnabled(false);

    screensharingCapturer screenCapturer = new screensharingCapturer(MainActivity.this,mWebViewContainer);
    mpublisher.setCapturer(screenCapturer);

    mWebViewContainer.setWebViewClient(new WebViewClient());
    WebSettings webSettings = mWebViewContainer.getSettings();
    webSettings.setJavaScriptEnabled(true);
    mWebViewContainer.setLayerType(View.LAYER_TYPE_SOFTWARE,null);
    mWebViewContainer.loadUrl("http://www.tokBox.com");

    mpublisher.setStyle(BaseVideoRenderer.STYLE_VIDEO_SCALE,BaseVideoRenderer.STYLE_VIDEO_FILL);
    mpublisherViewContainer.addView(mpublisher.getView());

    mSession.publish(mpublisher);
}

解决方法

我终于解决了这个问题:

Publisher.Builder mPublisherBuilder = new Publisher.Builder(MainActivity.this); //.build();
ScreenSharingCapturer screenCapturer = new ScreenSharingCapturer(MainActivity.this,mWebViewContainer);
mPublisherBuilder=mPublisherBuilder.capturer(screenCapturer);
mPublisher=mPublisherBuilder.build();

setCapturer 已被弃用,因此它不会从 BaseVideoCapture 设置捕获器。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...