Javascript HTML5 音频 - 如果已经播放,不播放声音?

标签 javascript html

我已经在我的网站上设置了一些 HTML 音频,并在几秒钟后设置了自动播放功能,但是声音似乎加载了两次?一个接一个开始玩,虽然一个是幽灵,看不到玩家。

如果已经有声音在播放,我该如何告诉 javascript 不要开始播放声音?

<audio controls="controls" onloadeddata="var audioPlayer = this; setTimeout(function() { audioPlayer.play(); }, 2000)" }>
    <source src="http://www.alanis50.com/Music/music.mp3" type="audio/mp3"/>
    <source src="http://www.alanis50.com/Music/music.ogg" type="audio/ogg"/>
</audio>

上述问题已解决,但我想为 Internet Explorer 添加此音频的 Flash 回退,因此添加:

<div id ="audio">

<script>var readingMusic = false; </script>
<audio controls="controls" loop="loop" onloadeddata="var audioPlayer = this; if (!readingMusic){readingMusic = true;setTimeout(function() { audioPlayer.play(); }, 2000)}" }>
    <source src="http://www.alanis50.com/Music/music.mp3" type="audio/mp3"/>
    <source src="http://www.alanis50.com/Music/music.ogg" type="audio/ogg"/>
    <embed type="application/x-shockwave-flash" flashvars="audioUrl=http://www.alanis50.com/Music/music.mp3&autoPlay=true" src="http://www.google.com/reader/ui/3523697345-audio-player.swf" width="400" height="27" quality="best" wmode="transparent"></embed>
</audio>
</div>

<div id="audiohide">
<audio controls="controls" loop="loop" onloadeddata="var audioPlayer = this; if (!readingMusic){readingMusic = true;setTimeout(function() { audioPlayer.play(); }, 2000)}" }>
    <source src="http://www.alanis50.com/Music/music.mp3" type="audio/mp3"/>
    <source src="http://www.alanis50.com/Music/music.ogg" type="audio/ogg"/>
    <embed type="application/x-shockwave-flash" flashvars="audioUrl=http://www.alanis50.com/Music/music.mp3&autoPlay=true" src="http://www.google.com/reader/ui/3523697345-audio-player.swf" width="400" height="27" quality="best" wmode="transparent"></embed>
</audio>

</div>

但现在 flash 音频表现如何,显然 javascript 不影响 flash 嵌入?

最佳答案

你不能有一个 bool 值来告诉浏览器是否已经有一些音乐在播放吗?

带有 2 个标签的示例:

<script>var readingMusic = false; </script>
<audio controls="controls" onloadeddata="var audioPlayer = this; if (!readingMusic){readingMusic = true;setTimeout(function() { audioPlayer.play(); }, 2000)}" }>
    <source src="http://www.alanis50.com/Music/music.mp3" type="audio/mp3"/>
    <source src="http://www.alanis50.com/Music/music.ogg" type="audio/ogg"/>
</audio>

<audio controls="controls" onloadeddata="var audioPlayer = this; if (!readingMusic){readingMusic = true;setTimeout(function() { audioPlayer.play(); }, 2000)}" }>
    <source src="http://www.alanis50.com/Music/music.mp3" type="audio/mp3"/>
    <source src="http://www.alanis50.com/Music/music.ogg" type="audio/ogg"/>
</audio>

关于Javascript HTML5 音频 - 如果已经播放,不播放声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16077642/

相关文章:

javascript - 如何显示不同高度尺寸的图像

javascript - jquery .prop ('defaultSelected' ) 似乎在 IE9 中出现故障

javascript - 未定义 Redux 中间件

javascript - ASP.NET 更改文本,单击按钮时无需刷新页面

javascript - 组合 2 个字符串时,Dom 元素显示的结果与静态输入的查询不同

javascript - 可搜索下拉菜单

javascript - jQuery animate 在 Firefox 中实现 div 跳跃

javascript - 无法在 jquery-simple-datetimepicker 中设置 minDate 或 maxDate

javascript - 在类方法中使用时,类中的属性未定义

javascript - 如何访问脚本标签外的Javascript变量值