Android不从间隔播放html5音频

Posted

技术标签:

【中文标题】Android不从间隔播放html5音频【英文标题】:Android not playing html5 audio from an interval 【发布时间】:2013-02-20 00:25:40 【问题描述】:

我正在尝试使用手机上的 html5 音频标签播放音频。 我已经加载了声音,但是当我运行 .play() 命令时,什么也没有发生。 我使默认控件可见,以便我通过按下该播放按钮进行测试,并且该按钮有效并且声音播放。 我还尝试通过从地址栏中执行 javascript 来播放声音,并且效果也很好。

我用来玩的代码是这样的:

setInterval(function()
    if(blahblah)
        document.getElementById("player").play();
    
,500);

为了确保它甚至尝试播放声音,我在它后面添加了一个警报,如下所示:

setInterval(function()
    if(blahblah)
        document.getElementById("player").play();
        alert("Played!");
    
,500);

我看到了警报,但没有播放声音。

感谢您的帮助:)

【问题讨论】:

没人知道怎么回事? 我遇到了类似的问题,尽管我已经尝试了所有方法。 Howler.js、Soundmanager2 等。没有任何效果。 :( 【参考方案1】:

大多数移动设备只允许您在这是用户交互的结果时播放音频。如果您将播放代码放入按钮单击事件中,它应该可以工作(假设您的代码中没有其他错误),但是设备会阻止您的音频从 setInterval 内部播放,因为它认为它没有用户的播放权限。

我现在要做的,我承认这是一种解决方法,是我在按钮单击事件中播放并立即停止音频,然后调用setInterval。它现在有效——因为设备认为它已被用户授予播放该音频的权限,即使我稍后触发它也是如此。 我的按钮点击事件中的代码如下所示:

document.getElementById("player").play();
document.getElementById("player").pause();

setInterval(function()
    document.getElementById("player").play();
, 500);

请注意,在移动设备上播放可能不如在计算机上流畅。尽可能寻求替代方法。

【讨论】:

以上是关于Android不从间隔播放html5音频的主要内容,如果未能解决你的问题,请参考以下文章

音频和视频未在 Android WebView HTML5 中播放

HTML5 音频未在 Android 4.0.4 设备本机浏览器中多次播放

如何在 Android 上始终可靠地播放 HTML5 音频?

在 iOS 中连续播放 HTML5 音频/视频?

HTML5 音频开始播放延迟

Android Phonegap HTML5 音频标签不起作用