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 设备本机浏览器中多次播放