三星互联网浏览器流上传与html5 - 相机freez

时间:2018-01-31 12:02:38

标签: javascript android html5 constraints samsung-mobile

我的部分系统是从html5中的移动webapp上传流,它适用于Android上的Chrome浏览器,在三星互联网浏览器中,有时从录制开始有时会自动冻结,有时会在录制过程中突然发生,我已转载通过录音时打断电话,任何想法?

视频标记和约束定义如下:

video = document.getElementById('vid');
video.setAttribute('autoplay', '');
video.setAttribute('muted', '');
video.setAttribute('playsinline', '');

video.style.width = '160px';
video.style.height = '90px';


//constraints:
video: {
        mandatory: {
            minWidth: CANVAS_WIDTH,
            minHeight: CANVAS_HEIGHT,
            maxWidth: CANVAS_WIDTH,
            maxHeight: CANVAS_HEIGHT
        }

1 个答案:

答案 0 :(得分:0)

我认为您可能需要处理可见性更改事件并停止/恢复相机访问我建议您将应用程序移植到Cordova并使用事件在后台或前台模式下处理应用程序。为此,您可以在这里查看:how to check mobile web browser is running in foreground or background on mobile device

如果您被迫使用标准的网络浏览器,那么您可以查看以下页面然后尝试这个,但是因为它是实验性的,所以无法保证它能够正常工作。

取自https://greensock.com/forums/topic/10051-animations-pause-when-browser-tab-is-not-visible/

var vis = (function(){
    var stateKey, 
        eventKey, 
        keys = {
                hidden: "visibilitychange",
                webkitHidden: "webkitvisibilitychange",
                mozHidden: "mozvisibilitychange",
                msHidden: "msvisibilitychange"
    };
    for (stateKey in keys) {
        if (stateKey in document) {
            eventKey = keys[stateKey];
            break;
        }
    }
    return function(c) {
        if (c) document.addEventListener(eventKey, c);
        return !document[stateKey];
    }
})();

用法:

// check if current tab is active or not
vis(function(){

    if(vis()){  

    setTimeout(function(){  
            // tween resume() code goes here          
            console.log("tab is visible - has focus");
        },300);     

    } else {

        // tween pause() code goes here
        console.log("tab is invisible - has blur");      
    }
});