我有一个带有Blob URL
来源的视频标签,它实际上是相机的视频流。问题是,尽管视频仍在播放,但设备将进入待机模式并关闭屏幕。
我尝试了数据URL,它们可以正常工作并防止设备进入睡眠状态。
我想知道为什么存在这种差异?解决该问题的最佳方法是什么?我宁愿避免在页面上添加其他视频,以防止出现这种意外行为,否则我将使用NoSleep.js。
我还应该注意,我正在使用的库tracking.js仅将视频作为Blob URL提供。我曾尝试阅读Blob网址,但这没有用。如果您知道好的解决方案,请告诉我。
更新
看着tracking.js code,我发现它只是在使用getUserMedia函数来获取用户的摄像机流。 getUserMedia
返回MediaStrim。我尝试创建对象URL并将视频的src
设置为它(1),然后直接将流与srcObject
一起使用(2),但这两种方法均无效。我可以得出结论,将srcObject
设置为LocalMediaStream
也不会阻止屏幕休眠。
window.navigator.getUserMedia({
video: !0,
audio: 0
}, function (n) {
$('#video')[0].src = window.URL.createObjectURL(n); // 1
$('#video')[0].srcObject = n; // 2
}, function () {
throw Error('Cannot capture user camera.')
});