V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
asanelder
V2EX  ›  问与答

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

  •  
  •   asanelder · 2022-11-19 02:12:22 +08:00 · 1537 次点击
    这是一个创建于 496 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    想想看如果点击就会触发播放,以至于想拖动一下标签时,竟然不敢去操作了。这种所谓智能,带给用户压迫感
    15855pm
        9
    15855pm  
       2022-11-19 18:06:50 +08:00
    6 楼说的很对,但是补充一点,用户不是播放过一次即可,而是需要很多次,浏览器才能记住当前用户对当前这个网站放开自动播放的限制
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2864 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 13:13 · PVG 21:13 · LAX 06:13 · JFK 09:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.