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

Javascript HTML5音频-如果已经播放,则不播放声音?,javascript,html,Javascript,Html,我在我的网站上设置了一些HTML音频,几秒钟后我设置了自动播放功能,但是声音似乎加载了两次?一个接着一个开始玩,尽管一个是幽灵,不能看到玩家 如果已经有声音在播放,我怎么能告诉javascript不要开始播放声音呢 <audio controls="controls" onloadeddata="var audioPlayer = this; setTimeout(function() { audioPlayer.play(); }, 2000)" }> <source

我在我的网站上设置了一些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的此音频添加一个闪存回退,因此添加:

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

var readingMusic=false;

但是现在flash音频的行为与之前的音频是一样的,显然javascript没有影响flash嵌入

你不能让一个布尔值告诉浏览器是否已经有音乐播放吗

带有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>
var readingMusic=false;
好吧,你的

问题似乎在这方面:

location = base + "/#" + current.replace(base, "");
您可以在不离开当前页面的情况下导航到新url(如果来源相同,唯一的区别是散列)。我建议您在更改位置原点后开始播放音频


因此,您可以在该位置更改后立即放置autoplay logick。

在哪个浏览器中出现此问题?这个音频标签是你网页上唯一可以自动播放的吗?有趣的是,我测试过的所有浏览器都是Firefox/chrome/IE,我不确定是否有更深层次的问题,比如脚本在某处加载了两次等等。。?但是我想知道,如果音频已经开始播放,我是否可以设置一个功能使其不开始播放?我不介意承认我是javascript的新手(你能为这个问题创建一个解决方案吗?嗯,第一次使用JSFIDLE不确定我是否做得对:但这有帮助吗?你尝试了不同的音频文件?在Chrome中听起来不错。朱利安,我向你致敬!非常感谢你,这让我发疯。我想我今天学到了一些东西!:)因为你显然是一个非常聪明的人,你知道为这个播放器实现flash回退的最佳方法吗?对于IE?我不知道什么是“最好的”方式,因为我不是HTML5方面的专家,但是这个页面似乎包含了相关的信息:我有点回到了这个音频的flash版本,它的行为完全像HTML5一样??它不断重复,这意味着它显然与下面4pcbr所说的有关,我如何使用为HTML 5音频编写的javascript对flash嵌入执行相同的操作?下面是我如何添加flash回退功能的,但它与现在播放良好的HTML 5音频有相同的问题?