-1
我使用離子2與webrtc從前後相機獲取視頻流。WebRTC黑屏同時在Android設備上翻轉相機
請參閱下面我打字稿代碼:
if (this.isFrontCam) {
constraints = {
mandatory: {},
optional: [{sourceId: this.cameras[0]}]
};
} else {
constraints = {
mandatory: {},
optional: [{sourceId: this.cameras[1]}]
};
}
if (this.currentVideoStream && this.currentVideoStream !=null) {
this.currentVideoStream.getTracks().forEach(function (track) {
track.stop();
});
this.currentVideoStream.release();
this.currentVideoStream = null;
}
var n = <any>navigator;
n.getUserMedia = n.getUserMedia || n.webkitGetUserMedia || n.mozGetUserMedia || n.msGetUserMedia;
//getting local video stream
n.getUserMedia({
audio: true,
video: constraints
}, function (myStream) {
alert("Current Video stream " + self.currentVideoStream);
self.currentVideoStream = myStream;
alert("New Stream"+ myStream);
//displaying local video stream on the page
(<HTMLVideoElement>document.getElementById('localVideo')).src = window.URL.createObjectURL(myStream);
我得到2個不同的(前後)攝像頭的設備ID(this.cameras
),如果我使用他們的個人兩款相機都工作正常,但是當我翻轉他們使用上面的代碼(按鈕點擊從UI調用此函數)像上面他們不工作。它只是顯示黑屏。
我有一對夫婦的想法,但還沒有這個測試自己。 1.您是否嘗試每次創建新的視頻元素? 2.您是否在設置src後嘗試調用videoElement.play()? 3.您是否嘗試過使用srcObject而不是src。這是新規格。所以: ( document.getElementById('localVideo'))。src = myStream; 而不是使用window.URL.createObjectURL這是老方法。 –
請閱讀[在什麼情況下我可以添加「緊急」或其他類似的短語到我的問題,以獲得更快的答案?](/ meta.stackoverflow.com/q/326569) - 總結是,這不是這是解決志願者問題的理想方式,可能會對獲得答案產生反作用。請不要將這添加到您的問題。 – halfer
我是黑客馬拉松的一員,所以我儘快需要答案,所以我使用緊急詞,因爲我需要在幾個小時內答覆,以便我可以在一天內完成代碼的其餘部分。我使用上面的代碼以及webrtc在Android設備上進行視頻聊天。我甚至提出了亞當給出的評論。所以,我真的很需要它。 – user1188867