在我的nexus4(Android 4.4.4)上,我正在尝试在面向相机的'用户'和面向相机的'环境'之间切换。用新约束调用getUserMedia会导致黑屏(MediaStream.ended = true)
访问任何一个直接工作。 在它们之间切换bij再次调用navigator.getUserMedia()
设置新约束失败。失败导致黑屏视频& MediaStream.ended = true。
为什么MediaStream.ended = true在我第二次调用getUserMedia时?
在我看来,我动态创建视频源数量的按钮。两个在这种情况下。点击按钮将调用camera.getUserMedia()
并通过在媒体源:
camera.getUserMedia = function(source){
var constraints = {
video: true,
audio: false
};
if(source){
constraints.video = {optional: [{
sourceId: source.id
}]};
}
navigator.getMedia(
constraints,
function(stream) {
var vendorURL = window.URL || window.webkitURL;
video.src = vendorURL.createObjectURL(stream);
video.play();
streaming = true;
},
function(err) {
...
}
);
};
我假设,因为你只能有一个摄像头的时间和杀死另一个杀死原始流...您将需要重新谈判整个对等连接,一旦加入,将其与创建新流其他相机。 – 2014-10-08 00:52:20
@BenjaminTrent你在谈论'重新谈判对等连接'。我再次使用包含其他相机ID的新约束来调用“navigator.getUserMedia()”(重新协商?)。这不是你说'重新谈判对等连接'的意思吗? – Timo 2014-10-08 18:17:33
忽略我以前的评论...我完全错了:)。这两个电话的源ID是什么? – 2014-10-08 18:48:45