在我的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