• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Lostbit
V2EX  ›  程序员

微信 H5 页面在安卓环境下 video 无法自动播放视频,该如何解决?

  •  
  •   Lostbit · Jan 15, 2020 · 8138 views
    This topic created in 2493 days ago, the information mentioned may be changed or developed.

    需求:做个类似抖音 h5 页面,哪怕第一个视频需要手动播放都行,后面的视频能自动播放。

    IOS 没有问题,可以自动播放,安卓不行。

    在网上查了资料,没有解决办法。

    黑魔法也行。

    28 replies  •  2021-02-07 10:53:46 +08:00
    p8YFk4f3E8SJ3aEv
    p8YFk4f3E8SJ3aEv
    Jan 15, 2020
    1
    哈哈哈这个我遇到过,用定时器解决
    p8YFk4f3E8SJ3aEv
    p8YFk4f3E8SJ3aEv
    Jan 15, 2020
    2
    不对,看错了。。。。。我当时做的是直播,你这个是视频列表
    p8YFk4f3E8SJ3aEv
    p8YFk4f3E8SJ3aEv
    Jan 15, 2020
    3
    什么格式的视频? flv 的话用 bilibili 的 flv.js 试试
    ccfoucs
    ccfoucs
    Jan 15, 2020
    4
    非 wifi 环境下浏览器是禁止自动播放的,省流量
    redbuck
    redbuck
    Jan 15, 2020
    5
    与 wifi 无关.

    高版本浏览器禁止视频,音频自动播放.只能由用户行为触发.甚至,如果是在用户行为的回调中,你加个延时都是无效的.

    如果是在微信中,那可以使用'WeixinJSBridgeReady'事件,微信浏览器做了特殊处理,在这个回调里拿到 videoContext,手动调用 play 可以开始播放.

    除此之外,你可以监听 touchstart 事件,至少在用户接触屏幕之后可以开始播放
    KuroNekoFan
    KuroNekoFan
    Jan 15, 2020
    6
    youtube 的方法是 mute 播放,然后加个提示让用户交互来启用声音
    redbuck
    redbuck
    Jan 15, 2020
    7
    查了下, 设置 muted 视频可以静音自动播放
    [MDN 文档]( https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/video)
    efaun
    efaun
    Jan 15, 2020❤️2
    8
    自动播放视频就是毒瘤,我遇到一个关一个
    geeksnail
    geeksnail
    Jan 15, 2020
    9
    忘了自己当年微信打开视频遇到的是什么奇葩问题了。
    试试这几个设置:
    // for wechat browser
    video.setAttribute('webkit-playsinline', 'webkit-playsinline');
    video.setAttribute('x-webkit-airplay', 'true');
    video.setAttribute('playsinline', 'true');
    video.setAttribute('x5-video-player-type', 'h5');
    video.setAttribute('x5-video-player-fullscreen', 'false');
    video.preload = 'auto';
    KuroNekoFan
    KuroNekoFan
    Jan 15, 2020
    10
    不要尝试其它 workaround 了,用得了一时,用不了升级系统
    Lostbit
    Lostbit
    OP
    Jan 15, 2020
    11
    @f056917 mp4 格式
    Lostbit
    Lostbit
    OP
    Jan 15, 2020
    12
    @slowhand 这些加过了,跟自动播放没有关系,IOS 可以自动播放安卓不行
    Lostbit
    Lostbit
    OP
    Jan 15, 2020
    13
    @redbuck 对,我监听了 WeixinJSBridgeReady 事件,然后在回调里用 video.play() 方法,IOS 可以 安卓不行
    chaselen
    chaselen
    Jan 15, 2020 via Android
    14
    去年研究过一样的问题,无解
    p8YFk4f3E8SJ3aEv
    p8YFk4f3E8SJ3aEv
    Jan 15, 2020
    15
    安卓版微信内置 X5 浏览器,播放的时候自动全屏的问题你解决了?
    learnshare
    learnshare
    Jan 15, 2020
    16
    浏览器的安全策略,禁止自动播放,只有手动同步触发才行
    xiangyuecn
    xiangyuecn
    Jan 15, 2020
    17
    黑魔法?帧动画要不要,检测到不能自动播放时播放图片帧序列来模拟视频,反正流量不要钱😒😒
    zisiluojin
    zisiluojin
    Jan 15, 2020
    18
    试试调用 wxsdk,在 sdk 初始化时候播放
    qiayue
    qiayue
    Jan 15, 2020
    19
    用微信 jssdk,在初始化后播放
    justin2018
    justin2018
    Jan 15, 2020
    20
    https://github.com/qiaozi-tech/WXInlinePlayer 这个应该符合楼主需求~
    ajaxfunction
    ajaxfunction
    Jan 15, 2020
    21
    哈哈,微信里最好解决,反而浏览器不行。
    因为微信有 JSSDK,自动播放音频视频都很简单
    cw2k13as
    cw2k13as
    Jan 15, 2020
    22
    @xiangyuecn 你可真是个小机灵鬼,鬼才
    redbuck
    redbuck
    Jan 15, 2020
    23
    @cl903254852 我的安卓可以啊.你是不是加了 setTimeout,video.play 只能在用户行为回调里同步执行,异步不行.
    reus
    reus
    Jan 15, 2020
    24
    我先骂一句傻逼自动播放。
    constantine008
    constantine008
    Jan 16, 2020
    25
    遇到过,反正我最后得出的结论是解决不了。。很多说可以的都是在浏览器里可以,而不是在微信里的浏览器可以,不知道其它大神怎么做到的
    constantine008
    constantine008
    Jan 16, 2020
    26
    说可以的,好歹随便给个可以自动播放的网址开开眼
    Zoopen
    Zoopen
    Jan 22, 2021
    27
    同遇到过该问题,因为浏览器策略的问题,禁止了浏览器自动播放视频。之前用 WXBridgeReady 事件解决了 IOS 的自动播放下一视频的功能,但是安卓无法实现。IOS 自动播放有时候还会出现一直 loading 的情况= = 。扎个坑,到时候回来再看看有没有解决方法。
    justin2018
    justin2018
    Feb 7, 2021
    28
    WXInlinePlayer 又用了一次

    客户需求 o(╥﹏╥)o
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2272 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 1063ms · UTC 13:47 · PVG 21:47 · LAX 05:47 · JFK 08:47
    ♥ Do have faith in what you're doing.