我们正在实现 Agora 屏幕共享并收到错误 DYNAMIC_USE_STATIC_KEY

Posted

技术标签:

【中文标题】我们正在实现 Agora 屏幕共享并收到错误 DYNAMIC_USE_STATIC_KEY【英文标题】:We are implementing the Agora screen sharing and getting error DYNAMIC_USE_STATIC_KEY 【发布时间】:2020-03-12 06:48:56 【问题描述】:

我无法理解当前使用演示代码的错误含义

我用来共享屏幕的示例代码,我还安装了共享屏幕所需的 chrome 扩展程序

screensharing(data) 
      AgoraRTC.Logger.setLogLevel(AgoraRTC.Logger.INFO);
        var localStreams=[];
        var channelKey=null;
        if (!this._client) 
            Toast.error("Please Join First!");
            return;
        
        const uid = this._params.uid;
        console.log("screen sharing function calling ")

        var screenClient = AgoraRTC.createClient(
            mode: 'rtc',
            codec: 'vp8'
        );
        screenClient.init(data.appID, function () 
            screenClient.join(channelKey, data.channel, null, function (uid) 
                // Save the uid of the local stream.
                localStreams.push(uid);
                // Create the stream for screen sharing.
                const streamSpec = 
                    streamID: uid,
                    audio: false,
                    video: false,
                    screen: true
                
                // Set relevant attributes according to the browser.
                // Note that you need to implement isFirefox and isCompatibleChrome.
                if (isFirefox()) 
                    streamSpec.mediaSource = 'window';
                 else if (!isCompatibleChrome()) 
                    streamSpec.extensionId = 'minllpmhdgpndnkomcoccfekfegnlikg';
                
              var  screenStream = AgoraRTC.createStream(streamSpec);
                // Initialize the stream.
                screenStream.init(function () 
                    // Play the stream.
                    screenStream.play('Screen');
                    // Publish the stream.
                    screenClient.publish(screenStream);

                    // Listen to the 'stream-added' event.
                    screenClient.on('stream-added', function (evt) 
                        var stream = evt.stream;
                        var uid = stream.getId()

                        // Check if the stream is a local uid.
                        if (!localStreams.includes(uid)) 
                            console.log('subscribe stream:' + uid);
                            // Subscribe to the stream.
                            screenClient.subscribe(stream);
                        
                    )

                , function (err) 
                    console.log(err);
                );

            , function (err) 
                console.log(err);
            )
        );
    

在函数上方,我是调用共享屏幕

我在浏览器中收到的实际错误消息。

AgoraRTCSDK.min.js:2 12:01:39:329 Agora-SDK [错误]: [850D2] 获取服务器节点失败 [DYNAMIC_USE_STATIC_KEY]https://webrtc2-ap-web-1.agora.io/api/v1DYNAMIC_USE_STATIC_KEY

李>

AgoraRTCSDK.min.js:2 12:01:39:331 Agora-SDK [INFO]: [850D2] 加入失败:DYNAMIC_USE_STATIC_KEY

【问题讨论】:

【参考方案1】:

当频道使用已启用证书的 appid 时,Agora RTC SDK 会抛出 DYNAMIC_USE_STATIC_KEY 错误,但没有传递适当的令牌,而是传递了 null。

您需要使用令牌服务器生成动态令牌并将其传递给 channelKey 而不是null

您可以在下面找到如何设置令牌服务器。 https://docs.agora.io/en/Interactive%20Broadcast/token_server_cpp?platform=CPP

或者,您可以在控制台中生成一个临时令牌 (https://sso.agora.io/en/login) 并将其传递给 channelKey 以开始开发。

【讨论】:

在 agora.oi 中,有什么方法可以将屏幕共享与视频广播合并显示 嘿!您可以查看此文档以了解“如何屏幕共享”:docs.agora.io/en/Video/screensharing_web?platform=Web

以上是关于我们正在实现 Agora 屏幕共享并收到错误 DYNAMIC_USE_STATIC_KEY的主要内容,如果未能解决你的问题,请参考以下文章

我正在尝试实现 Screenshare 但收到此错误:MediaError "Access to screen denied"

agora中的屏幕共享和视频广播切换错误

Android - 使用 Agora.io 进行屏幕共享

ios 无法使用 Agora 共享屏幕示例

android CRASH 中的 Agora 屏幕共享

Unity - 在 Windows 版 Agora 屏幕共享应用中选择屏幕/显示