我的部分系统是从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
}
答案 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");
}
});