Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 允许播放音频一次html_Javascript_Html_Audio - Fatal编程技术网

Javascript 允许播放音频一次html

Javascript 允许播放音频一次html,javascript,html,audio,Javascript,Html,Audio,在我的实验中,我试图限制受试者只播放一次音频文件。我正在使用以下html代码: <audio src="sound.mp3" type="audio/mp3" preload="auto" controls="controls" oncontextmenu="return false;">Audio could not be loaded.</audio> 无法加载音频。 有没有一种使用html的方法?如果不是,我如何将其适应javascript 谢谢大家! 我的方法

在我的实验中,我试图限制受试者只播放一次音频文件。我正在使用以下html代码:

<audio src="sound.mp3" type="audio/mp3" preload="auto" controls="controls" oncontextmenu="return false;">Audio could not be loaded.</audio>
无法加载音频。 有没有一种使用html的方法?如果不是,我如何将其适应javascript


谢谢大家!

我的方法是将音频放在一个名为audioDiv的div中

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

!


希望这有帮助

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

您不能在本机音频控件仍然可见的情况下禁用它们。如果您希望能够操纵音频控件,则需要使用JS、HTML和CSS来使用自己的控件。现在已经有了这方面的图书馆

此外,如果您是善良的,您应该让用户在点击播放后停止音频

下面是我要做的:

  • 使用插件添加您自己的播放器控件
  • 仅显示播放/停止按钮
  • 编写javascript,在以下情况下将文件标记为“已播放”。。。
  • 玩家点击停止按钮,
  • 当歌曲结束时
  • 音频被视为“播放”后,禁用播放按钮

感谢您的快速回答Sishaar!我尝试了你的代码:无法加载音频。函数playedOnce(){document.getElementByID(“audioDiv”).style.display=“none”;}但只要我点击它,它仍然会播放很多次。你知道我是否以正确的方式实现了你的代码吗?嘿!我已经编辑了代码,以继续并禁用div的所有子项,这是最新版本。告诉我这是否有效谢谢!我尝试了编辑过的版本,但它仍然可以播放我点击的次数。谢谢@Ryan,这非常有用!
function playedOnce(){
    var children = document.getElementById("audioDiv").getElementsByTagName('*');
    for(var i = 0; i < children.length; i++){
        children[i].disabled = true;
    }