V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ChengNaNA
V2EX  ›  Vue.js

IOS 苹果设备无法播放 audio 标签音频吗?

  •  
  •   ChengNaNA · 2019-11-16 09:36:21 +08:00 · 3884 次点击
    这是一个创建于 1594 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在做一个类似闹钟的功能,倒计时到一定时间就会执行播放音频 这个是音频标签

    	<audio src=" " id="media-audio"   @click="playVid()"></audio>
    

    这个是时间到了就播放音频的方法

            	this.myVideo = document.getElementById("media-audio");
                this.myVideo.src = '这个是音频地址'
                this.myVideo.play();
    

    网上说的要点击或者用 WeixinJSBridgeReady 才能在 ios 播放的方法像这样也试过了但也不行:

    			document.addEventListener("WeixinJSBridgeReady", function () {
                    this.myVideo.play();
                }, false);
                
                 document.addEventListener('YixinJSBridgeReady', function() {
                    this.myVideo.play();
                }, false);
    

    在安卓跟 pc 都可以播放音频,但是到了苹果设备就没有声音,类似 ipone se

    V 站有哪位大佬帮帮忙解答下吗?

    6 条回复    2019-11-16 12:59:32 +08:00
    civet
        1
    civet  
       2019-11-16 10:20:12 +08:00 via iPhone
    大部分新版浏览器都会禁止不经过用户交互就自动播放的音频视频。iOS Safari 貌似是最早引入这个 policy
    learnshare
        2
    learnshare  
       2019-11-16 10:20:37 +08:00
    安全策略,禁止自动播放,需要在用户操作后才能开始播放( event listener 还得是同步的)
    superrichman
        3
    superrichman  
       2019-11-16 10:51:17 +08:00
    我以前也被 ios 坑., 给 video 加 autoplay, 在 ios 下的一堆浏览器和 macOS 的 safari 都不让自动播放, 还是不要去折腾了.
    murmur
        4
    murmur  
       2019-11-16 10:54:36 +08:00
    怀疑是 wkwebview 的坑
    molvqingtai
        5
    molvqingtai  
       2019-11-16 12:46:05 +08:00 via Android
    必需由用户触发,给 body 绑定事件吧
    bestie
        6
    bestie  
       2019-11-16 12:59:32 +08:00
    貌似 ios safari 不支持 MP3,你可以试试 wav 或者 aac 格式的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   987 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 20:16 · PVG 04:16 · LAX 13:16 · JFK 16:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.