2017-02-16 167 views
0

我试图限制主题在我的实验中只播放一次音频文件。我正在使用下面的html代码:允许播放音频一次html

<audio src="sound.mp3" type="audio/mp3" preload="auto" controls="controls" oncontextmenu="return false;">Audio could not be loaded.</audio> 

有没有办法使用html做到这一点?如果不是我怎么能适应这个JavaScript?

谢谢!

回答

1

这取决于你的规则是“只播放一次音频文件”:当用户点击播放按钮,还是在用户听完整个曲目后?

您不能禁用本机音频控件,同时仍然可以看到它们。如果您希望能够操作音频控件,则需要使用JS,HTML和CSS自己的控件。这里已经有图书馆了。

另外,如果您是善良的人,您应该让用户能够停止音频后,她的打法。

这里是我会做:

  • 使用插件来添加自己的播放器控件
  • 只显示播放/停止按钮
  • 编写JavaScript作为“中扮演”当这标志着该文件。 ..
    1. 玩家击中停止按钮,
    2. 当歌曲结束是REA高等教育委员会
  • 一旦音频被认为是“玩”,禁止播放按钮
+0

谢谢@瑞恩,这非常有帮助! – Wolfgang

0

我会做到这一点的方法是放在一个名为audioDiv

<div id="audioDiv"> 
    <audio onclick="playedOnce()" src="sound.mp3" type="audio/mp3" preload="auto" controls="controls" oncontextmenu="return false;">Audio could not be loaded.</audio> 
</div> 

DIV音频,然后添加这个JavaScript方法某处

function playedOnce(){ 
    var children = document.getElementById("audioDiv").getElementsByTagName('*'); 
    for(var i = 0; i < children.length; i++){ 
     children[i].disabled = true; 
    } 

}

现在很明显,这是一个shell方法,假设你只有一个音频,所以也许你的javascript方法需要一个参数来决定哪一个禁用等。 此外,t他假设用户不会简单地刷新页面。如果你想保持它隐藏,尽管用户刷新页面,我会看看PHP sessions

希望这会有所帮助!

+0

谢谢您的快速答复Sishaar!我想你的代码:

但它仍会播放多次,因为我点击它。你知道我是否以正确的方式实现你的代码吗? – Wolfgang

+0

嘿!我编辑了代码继续并禁用div的所有子项,即

+0

谢谢!我尝试了编辑后的版本,但仍然会播放多次,因为我点击。 – Wolfgang