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

时间:2013-04-18 08:07:18

标签: javascript html5

我在我的网站上设置了一些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>

上面的问题已经解决,但是我想为这个音频添加一个闪回后备版本,以便添加:

<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嵌入?

2 个答案:

答案 0 :(得分:1)

你是否有一个布尔告诉浏览器是否已经播放了一些音乐?

带有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>

答案 1 :(得分:0)

嗯,that's a partjScript.js

似乎问题在于这一行:

location = base + "/#" + current.replace(base, "");

导航到新网址而不离开当前页面(如果来源相同且唯一的区别在于哈希)。我建议您在更改位置原点后开始播放音频。

因此,您可以在此位置更改后立即放置自动播放logick。