如何让视频带声音的自动播放?

2022-11-19 02:12:22 +08:00
 asanelder

网址: 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.

俺不太懂前端, 现在的问题就是, 如何让它有声音的自动播放?

1559 次点击
所在节点    问与答
9 条回复
Aloento
2022-11-19 02:58:14 +08:00
那是不可能的,浏览器硬限制,油猴脚本应该没有那么大权限
asanelder
2022-11-19 03:00:58 +08:00
@Aloento #1 huya 就可以啊, 你打开 huya, 首页的视频就是带声音自动播放
autoxbc
2022-11-19 03:34:06 +08:00
我觉得自动播放是个错误的交互。如果用户一次开了好几个标签,后台都自动播放要爆炸了,油管那种逻辑相当糟糕

所以我用脚本改成这样:任何网站禁止自动播放,包括 Chrome 内置的白名单,比如油管虎牙一类。然后把按键 F 映射为媒体全屏,这个过程中播放自动开始
superrichman
2022-11-19 07:58:59 +08:00
真奇怪 console 可以控制,油猴无法控制
KevinHuang99
2022-11-19 09:27:13 +08:00
@autoxbc 油管你开新标签不点进去是不会播放的
yuzo555
2022-11-19 10:32:06 +08:00
浏览器的逻辑是,用户在这个网站主动播放过带声音的媒体,之后再打开就可以自动播放了。

CGTN 这个网页明显没正确处理这个逻辑。。

应该是 catch 一下 video.play() 产生的错误,如果是 NotAllowedError ( Safari 下是 AbortError ),则说明被阻止了,这时候再静音或者提示用户按播放。CGTN 这个很明显一律静音处理了。。
HugoChao
2022-11-19 10:39:32 +08:00
现代浏览器都限制自动播放 疑似无解
autoxbc
2022-11-19 15:32:34 +08:00
@KevinHuang99 #5 有时候点击标签只是想拖动标签排序,或者仅仅是上一个标签关闭自动切换到那个标签,其实并不想马上播放

想想看如果点击就会触发播放,以至于想拖动一下标签时,竟然不敢去操作了。这种所谓智能,带给用户压迫感
15855pm
2022-11-19 18:06:50 +08:00
6 楼说的很对,但是补充一点,用户不是播放过一次即可,而是需要很多次,浏览器才能记住当前用户对当前这个网站放开自动播放的限制

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/896341

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX