Safari 浏览器 audio.play() 不工作

Posted

技术标签:

【中文标题】Safari 浏览器 audio.play() 不工作【英文标题】:Safari browser audio.play() is not working 【发布时间】:2018-10-30 07:26:40 【问题描述】:

我正在使用以下音频标签<audio id="player"></audio>,在 jquery 中我使用过var player = document.getElementById('player'); player.src ='/ajax.php'; player.play();

Safari 浏览器显示以下错误且未播放音频。 Unhandaled promise Rejection: NotSupportedError: The Operation is not supported

我已经搜索了这个,但没有得到任何适当的解决方案。有谁知道解决方案?提前致谢。

【问题讨论】:

***.com/questions/53058421/… 尝试在 windowload 上添加音频上下文 给出错误找不到变量:AudioContext。我在窗口加载功能中使用过 你能控制台记录你的播放器源吗?看来来源有问题 【参考方案1】:

浏览器禁止自动播放,用户必须点击才能播放。

【讨论】:

是的,我有一个播放按钮,点击调用 ajax 后我们调用 player.play() 函数。【参考方案2】:

请检查静音设置。

  Unmute, if it is set to mute.
  https://support.apple.com/kb/PH21463?locale=en_US

【讨论】:

音频被取消静音。【参考方案3】:

Promise 的拒绝处理程序使用作为唯一输入参数传入的异常名称调用(与抛出传统异常相反)。可能的错误包括:

NotAllowedError 用户代理(浏览器)或操作系统不允许在当前上下文或情况下播放媒体。例如,如果浏览器要求用户通过单击“播放”按钮明确开始媒体播放,则可能会发生这种情况。

NotSupportedError 媒体源(例如,可以指定为 MediaStream、MediaSource、Blob 或 File)不代表受支持的媒体格式。

引用自 MDN 网站。

当您收到NotSupportedError 错误时,您应该在此处查找player.src ='/ajax.php';

【讨论】:

以上是关于Safari 浏览器 audio.play() 不工作的主要内容,如果未能解决你的问题,请参考以下文章

html5的audio,audio.play()在手机浏览器中不能自动播放

一次在 Safari 上播放多个音频文件

iOS背景音乐不自动播放

IOS 10 mobile audio.play() 工作不稳定

使用 audio.play() 函数时反应错误

移动端audio自动播放问题