当前位置: 首页 > 面试题库 >

音频标签自动播放在移动设备中不起作用

秦昊穹
2023-03-14
问题内容

我正在使用此代码,当我看到controls我看到自动播放不起作用时。

<audio autoplay="true" src="music/lathe_di_chadar.mp3" type="audio/mp3" loop></audio>

并且无法在移动设备上正常运行,在网站上也可以正常运行。谁能告诉我这个问题?

谢谢,感激不尽


问题答案:

现在是2020年

请注意(出于以下原因?)Chrome已更改了其自动播放政策,因此您现在必须:

  • resume() 用户与页面进行任何(任何)交互后的音频上下文
  • 或“排名很高”(例如,相信Chrome浏览器默认不会根据用户和世界的行为停止播放音频)
  • 或(据我所知)用户必须位于来源A上,然后单击指向相同来源A的链接,并且A的新页面可以自动播放内容。

您可以使用AudioContextAPI播放声音,并从任何来源获取声音ArrayBuffer(即:从XMLHttpRequestFile

    window.addEventListener('load', function () {
        var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
        var source = audioCtx.createBufferSource();
        var xhr = new XMLHttpRequest();
        xhr.open('GET', 'audio-autoplay.wav');
        xhr.responseType = 'arraybuffer';
        xhr.addEventListener('load', function (r) {
            audioCtx.decodeAudioData(
                    xhr.response, 
                    function (buffer) {
                        source.buffer = buffer;
                        source.connect(audioCtx.destination);
                        source.loop = false;
                    });
            source.start(0);
        });
        xhr.send();
    });

在移动设备和台式机上均可在Chrome和Firefox上运行

重要笔记

值得一提的是,IMO,这个“窍门”实际上可以看作是浏览器的错误,并且如果浏览器认为这会破坏用户体验/成为广泛使用的烦恼(例如广告),则可能在任何时候都不再起作用。

还值得一提的是,至少在我的手机和FF 54上,即使您的手机已静音,声音仍会播放…

还值得一提的是,用户autoplay可以通过浏览器的常规选项或更高级的about:config页面(autoplay行为由Firefox
media.autoplay.enabledmedia.block-autoplay-until-in- foreground首选项设置)来设置行为以使其符合自己的愿望和需求。

因此 autoplay不管您如何操作, 强制音频 都是不好的UX创意



 类似资料:
  • 问题内容: 我正在尝试获取音频文件以在iPad上的Safari中自动播放。如果我在Mac上使用Safari浏览该页面,就可以了。在iPad上,自动播放不起作用。 问题答案: 更新: 这是一个hack,并且在IOS 4.X及更高版本上不再起作用。此版本适用于IOS3.2.X。 这不是真的。Apple不想在iPad上自动播放视频和音频,因为您可以在移动网络上使用大量流量。我不会将自动播放用于在线内容。

  • 问题内容: 我经常在IPython笔记本中运行长时间运行的单元。我希望笔记本计算机在单元执行完后自动发出蜂鸣声或播放声音。在iPython笔记本中是否可以执行某些操作,或者可以在可以自动播放声音的单元格的末尾添加一些命令? 如果这有任何区别,我正在使用Chrome。 问题答案: TL; DR 在笔记本顶部 应该指向您计算机上的文件,或者可以从Internet访问。 然后,在长时间运行的单元结束时

  • 问题内容: 我花了很多时间试图弄清楚为什么像这样嵌入视频: 一旦将页面加载到FireFox中,便会自动开始播放,但无法在基于Webkit的浏览器中自动播放。这仅在某些随机页面上发生。到目前为止,我找不到原因。我怀疑CMS编辑器创建了一些未封闭的标签或大量JS。 问题答案: 我能得到的最佳解决方案是在 …不是很漂亮,但是可以正常工作。 更新 最近,许多浏览器只能在没有声音的情况下自动播放视频,因此您

  • 问题内容: 对于我的问题,我有一个链接。我想通过在fancybox叠加窗口中单击链接来播放视频。这不是问题。问题是参数,例如“自动播放”或“自动隐藏”。 以下链接无效: 覆盖窗口已打开,但视频未自动播放。 编辑:我想在移动设备上使用HTML5播放器。 在桌面浏览器上,它可以使用参数,但不能在移动设备上使用。 问题答案: 事实证明,无法在iOS设备(iPhone,iPad,iPod touch)和A

  • 在某些Android设备中尝试在听筒上播放音频文件时似乎存在问题。预期的行为是它应该在听筒中播放音频文件,但在某些设备中,如三星Galaxy Note 2(Android版本4.4.2)和Sony Xperia XA(Android版本6.0),它通过扬声器播放它们。 然而,在摩托罗拉moto g(Android版本6.0)和nexus 5X(Android版本7.0)等设备中,它工作正常。 该应

  • 我有一个创建和播放我播放列表的文字JS对象。在HTML页面中,我有一个包含我所有曲目的列表。当我点击某些曲目时,一切正常,但当我点击一个曲目,等待曲目结束时,下一个曲目就不播放了。这是我的代码的部分: 还有一件事,当第一首歌曲结束并调用下一首歌曲的播放时,曲目没有加载(onload事件没有消息返回)。谢谢,对不起我的英语不好。A. 好的,我试着在设置上添加“FlashVersion:9”,这就解决