首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cl903254852
V2EX  ›  程序员

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

  •  
  •   cl903254852 · 6 天前 · 1306 次点击

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

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

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

    黑魔法也行。

    26 回复  |  直到 2020-01-16 09:22:50 +08:00
    f056917
        1
    f056917   6 天前
    哈哈哈这个我遇到过,用定时器解决
    f056917
        2
    f056917   6 天前
    不对,看错了。。。。。我当时做的是直播,你这个是视频列表
    f056917
        3
    f056917   6 天前
    什么格式的视频? flv 的话用 bilibili 的 flv.js 试试
    ccfoucs
        4
    ccfoucs   6 天前
    非 wifi 环境下浏览器是禁止自动播放的,省流量
    redbuck
        5
    redbuck   6 天前
    与 wifi 无关.

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

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

    除此之外,你可以监听 touchstart 事件,至少在用户接触屏幕之后可以开始播放
    KuroNekoFan
        6
    KuroNekoFan   6 天前
    youtube 的方法是 mute 播放,然后加个提示让用户交互来启用声音
    redbuck
        7
    redbuck   6 天前
    查了下, 设置 muted 视频可以静音自动播放
    [MDN 文档]( https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/video)
    efaun
        8
    efaun   6 天前   ♥ 2
    自动播放视频就是毒瘤,我遇到一个关一个
    slowhand
        9
    slowhand   6 天前
    忘了自己当年微信打开视频遇到的是什么奇葩问题了。
    试试这几个设置:
    // 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
        10
    KuroNekoFan   6 天前
    不要尝试其它 workaround 了,用得了一时,用不了升级系统
    cl903254852
        11
    cl903254852   6 天前
    @f056917 mp4 格式
    cl903254852
        12
    cl903254852   6 天前
    @slowhand 这些加过了,跟自动播放没有关系,IOS 可以自动播放安卓不行
    cl903254852
        13
    cl903254852   6 天前
    @redbuck 对,我监听了 WeixinJSBridgeReady 事件,然后在回调里用 video.play() 方法,IOS 可以 安卓不行
    chaselen
        14
    chaselen   6 天前 via Android
    去年研究过一样的问题,无解
    f056917
        15
    f056917   6 天前
    安卓版微信内置 X5 浏览器,播放的时候自动全屏的问题你解决了?
    learnshare
        16
    learnshare   6 天前
    浏览器的安全策略,禁止自动播放,只有手动同步触发才行
    xiangyuecn
        17
    xiangyuecn   6 天前
    黑魔法?帧动画要不要,检测到不能自动播放时播放图片帧序列来模拟视频,反正流量不要钱😒😒
    zisiluojin
        18
    zisiluojin   6 天前
    试试调用 wxsdk,在 sdk 初始化时候播放
    qiayue
        19
    qiayue   6 天前
    用微信 jssdk,在初始化后播放
    justin2018
        20
    justin2018   6 天前
    https://github.com/qiaozi-tech/WXInlinePlayer 这个应该符合楼主需求~
    ajaxfunction
        21
    ajaxfunction   6 天前
    哈哈,微信里最好解决,反而浏览器不行。
    因为微信有 JSSDK,自动播放音频视频都很简单
    cw2k13as
        22
    cw2k13as   6 天前
    @xiangyuecn 你可真是个小机灵鬼,鬼才
    redbuck
        23
    redbuck   6 天前
    @cl903254852 我的安卓可以啊.你是不是加了 setTimeout,video.play 只能在用户行为回调里同步执行,异步不行.
    reus
        24
    reus   6 天前
    我先骂一句傻逼自动播放。
    constantine008
        25
    constantine008   5 天前
    遇到过,反正我最后得出的结论是解决不了。。很多说可以的都是在浏览器里可以,而不是在微信里的浏览器可以,不知道其它大神怎么做到的
    constantine008
        26
    constantine008   5 天前
    说可以的,好歹随便给个可以自动播放的网址开开眼
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2268 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 30ms · UTC 14:20 · PVG 22:20 · LAX 06:20 · JFK 09:20
    ♥ Do have faith in what you're doing.