firefox中不支持mediastreamtrack.getsources,如何做等效的操作

时间:2013-11-21 01:17:55

标签: html5 google-chrome firefox webrtc

是否有相同的方法来获取连接到PC的视频设备列表?除了内置网络连接之外,我还有一个外部网络摄像头连接。

mediastreamtrack.getsources正在使用chrome,但firefox报告“TypeError:MediaStreamTrack.getSources不是函数”。我正在运行firefox版本25.0.1

谢谢!

3 个答案:

答案 0 :(得分:2)

截至Nightly 28.0a1,Firefox没有任何与Chrome的MediaStreamTrack.getSources相同的内容。所以,不,目前还没有办法在Firefox中获取本地音频和视频设备的列表。

我询问了开发Firefox WebRTC实现的开发人员,他们说这是一个计划好的功能,但没有ETA何时会降落。如果你很好奇,可以查看irc log(滚动到16:17)。

此外,这是draft W3C spec中的相关部分。

答案 1 :(得分:0)

请使用下面提到的代码。它正常工作,提供所有音频和视频设备列表。

navigator.mediaDevices.enumerateDevices()
        .then(function (devices) {
            devices.forEach(function (device) {
                var option = document.createElement('option');
                option.value = device.deviceId;
                if (device.kind === 'videoinput') {
                    option.text = device.label || 'camera' + (videoSelect.length + 1);
                    videoSelect.appendChild(option);
                } else if (device.kind == 'audioinput') {
                    option.text = device.label || 'mic' + (audioSelect.length + 1);
                    audioSelect.appendChild(option);
                }
            });
        })
        .catch(function (err) {
            console.log(err.name + ": " + err.message);
        });

答案 2 :(得分:-3)

从Firefox 34开始,MediaStreamTrack现已推出。

https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack