网址: https://www.cgtn.com/tv 浏览器: chrome
以上网站打开后会自动播放视频, 但是静音, 俺想写一个油猴脚本让它有声音的自动播放, 脚本如下
(function() {
'use strict';
// Your code here...
$(document).ready(function() {
setTimeout(() => {
jwplayer().setVolume(50);
jwplayer().play();
}, 2000);
});
})();
现在可以调整声音了, 但是调整声音后, 视频就自动暂停了, 在 console 有如下警告
Unmuting failed and the element was paused instead because the user didn't interact with the document before.
俺不太懂前端, 现在的问题就是, 如何让它有声音的自动播放?
1
Aloento 2022-11-19 02:58:14 +08:00
那是不可能的,浏览器硬限制,油猴脚本应该没有那么大权限
|
3
autoxbc 2022-11-19 03:34:06 +08:00
我觉得自动播放是个错误的交互。如果用户一次开了好几个标签,后台都自动播放要爆炸了,油管那种逻辑相当糟糕
所以我用脚本改成这样:任何网站禁止自动播放,包括 Chrome 内置的白名单,比如油管虎牙一类。然后把按键 F 映射为媒体全屏,这个过程中播放自动开始 |
4
superrichman 2022-11-19 07:58:59 +08:00 via Android
真奇怪 console 可以控制,油猴无法控制
|
5
KevinHuang99 2022-11-19 09:27:13 +08:00
@autoxbc 油管你开新标签不点进去是不会播放的
|
6
yuzo555 2022-11-19 10:32:06 +08:00 1
浏览器的逻辑是,用户在这个网站主动播放过带声音的媒体,之后再打开就可以自动播放了。
CGTN 这个网页明显没正确处理这个逻辑。。 应该是 catch 一下 video.play() 产生的错误,如果是 NotAllowedError ( Safari 下是 AbortError ),则说明被阻止了,这时候再静音或者提示用户按播放。CGTN 这个很明显一律静音处理了。。 |
7
HugoChao 2022-11-19 10:39:32 +08:00
现代浏览器都限制自动播放 疑似无解
|
8
autoxbc 2022-11-19 15:32:34 +08:00
@KevinHuang99 #5 有时候点击标签只是想拖动标签排序,或者仅仅是上一个标签关闭自动切换到那个标签,其实并不想马上播放
想想看如果点击就会触发播放,以至于想拖动一下标签时,竟然不敢去操作了。这种所谓智能,带给用户压迫感 |
9
15855pm 2022-11-19 18:06:50 +08:00
6 楼说的很对,但是补充一点,用户不是播放过一次即可,而是需要很多次,浏览器才能记住当前用户对当前这个网站放开自动播放的限制
|