使用chromeMediaSource时获取NavigatorUserMediaError:"桌面"

时间:2014-10-01 13:16:37

标签: javascript google-chrome-extension webrtc

我为chrome创建了一个DesktopCapture扩展,以获取用于桌面捕获的chromeMediaSourceId。 当我在localhost上运行时,扩展会将chromeMediaSourceId成功返回到主html页面。

以下是我在约束中得到的结果:

    {
     "audio":false,
     "video":{ 
              "mandatory":{
                            "chromeMediaSource":"desktop",
                            "maxWidth":1920,"maxHeight":1080,
                            "chromeMediaSourceId":"ouIW7wIZYullGDpZid/S2w=="
                          },
              "optional":[]
            }
    } 

但是当我打电话时

navigator.webkitGetUserMedia(screen_constraints, function (stream) {
                    document.querySelector('video').src = URL.createObjectURL(stream);
                }, function (error) {
                    console.log(error);
                });

我收到以下错误

NavigatorUserMediaError {constraintName: "", message: "", name: "InvalidStateError"} 

1 个答案:

答案 0 :(得分:-1)

对我来说唯一看起来很奇怪的是

    {
     "audio":false,
     "video":{ 
              "mandatory":{
                            "chromeMediaSource":"desktop",
                            "maxWidth":1920,"maxHeight":1080,
                            "chromeMediaSourceId":"ouIW7wIZYullGDpZid/S2w=="
                          },
              "optional":[]
            }
    } 

应该是

{
    audio:false,
    video:{ 
             mandatory:{
                           chromeMediaSource:"desktop",
                           maxWidth:1920,maxHeight:1080,
                           chromeMediaSourceId:"ouIW7wIZYullGDpZid/S2w=="
                         },
             optional:[]
           }
} 

不同之处在于音频,虚假,视频,chromeMediaSource,......不应该在引号中。