我正在播放两个视频,如下图所示:
有一个名为“进入全屏”的按钮。当有人点击那个按钮时,我想做两件事。
- Video Player 2 将设置为画中画和
- 视频播放器 1 将设置为全屏。
我可以做全屏或画中画,但不能同时做全屏和画中画。错误抛出如下:
无法在“元素”上执行“请求全屏”:API 只能由用户手势启动。
未捕获(承诺中)TypeError:全屏错误
我正在使用 jQuery,这是我的示例代码:
$('.enter-full-screen').click(event => {
event.stopImmediatePropagation();
event.stopPropagation();
let pipResponse = $('#video-player-2')[0].requestPictueInPicture();
pipResponse.then(() => {
$('#video-player-1')[0].requestFullscreen() // Note: I am using a browser prefixes
.then(/* ... */)
.catch(/* ... */);
})
});
更新:07.01.2020:我同时尝试了两个请求,但它也不起作用。它仅适用于我首先要求的一个。
let pipResponse = $('#video-player-2')[0].requestPictueInPicture();
let fullscreenResponse = $('#video-player-1')[0].requestFullscreen();
Promise.all([pipResponse, fullscreenResponse])
.then(/* code */)
.catch(/* code */);
在这种情况下,只有 pip 有效,全屏请求会引发错误。如果我首先请求全屏,那么只有全屏有效 - pip 会引发错误。
我尝试使用 jQuery
trigger('click')
来自动触发另一个点击事件。仅适用于一个(点子或全屏),但不能同时使用!
我真的很感谢你的帮助。