簡體   English   中英

WebRTC切換回前置攝像頭,其中gum不在Android / Chrome上流式傳輸

[英]WebRTC switch back to front camera with gUM not streaming on Android/Chrome

三星Galaxy S2的Android 6.0.1 + 鍍鉻V55,當我getUserMedia在頁面加載時,所獲得的視頻軌道會出現live

在此輸入圖像描述

當我從我的相機中選擇后置攝像頭時,我再次觸發我的gUM有限制使用那個精確面向后面的cameraId ,視頻軌道ended ,我有一個黑色矩形而不是一個流。

在此輸入圖像描述

var constraints = {
    video: {
        deviceId: {
            exact: defaultVideoDeviceId
        }
    },
    audio: true
};

gUM包裝

function gUM(constraints, callback) {
    console.debug("WebRTC constraints", constraints);

    // Stopping streaming before starting the new one
    if (window.streams.local) {
        window.streams.local.getTracks().forEach(function(track) {
          track.stop();
        });
    }

    navigator.mediaDevices.getUserMedia(constraints)
        .then(stream => {
            console.debug("New MediaStream > Tracks", stream.getTracks());
            window.streams.local = stream;
            callback && callback(stream);
        })
        .catch(err => {
            console.log("Raised error when capturing:", err);
        });
}

如果我切換回前面,它會獲取一個新的MediaStream並播放視頻。

我也面臨着類似的問題。

我的測試有點不同,因為我正在嘗試制作后置攝像頭的GUM,而我有一個GUM媒體流活動,正在使用前置攝像頭。

我測試了幾個Android設備,只有小米MI Mix 2與MIUI beta 875與Android 8.1的作品。 這可能是因為rom使用新的camera2 android api,或者因為Mi Mix 2相機硬件允許同時使用后置攝像頭和前置攝像頭。

令人討厭的是,有時候,在某些設備上,GUM不會失敗,但會無限期地掛起。

也許在track.stop()方法調用之后監聽MediaStreamTrack.onended事件,可以幫助理解資源何時完全空閑,以便您可以嘗試使用不同約束的新GUM。

如果你發現了什么,請告訴我。

西蒙娜

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM