点击播放MP3的一部分
问题描述:
我有许多按钮播放许多不同的声音 - 每个按钮播放不同的MP3时点击。示例代码:点击播放MP3的一部分
<a onclick="this.firstChild.play()"><audio src="1.mp3" ></audio>1</a>
对于我试图从同一个MP3文件播放的所有不同的声音的移动设备,所以我可以预载1个文件,并有更多的即时体验。
所以我需要设置单击时播放的mp3的起点和终点。
我该如何使用音频html5或javascript?在短短的镀铬工作就足够了...
答
我还没有测试此代码,但这应该工作:
<a id="audioTag1"><audio src="1.mp3" ></audio>1</a>
var canPlay = false;
var audio = document.getElementsByTagName('audio')[0];
document.getElementById('audioTag1').addEventListener('click', function(){
playAudio(15);
});
audio.addEventListener('canplay', function() { // listen for the `canplay`event, to make sure the file is loaded.
canPlay = true; // Set a boolean to "true" once the audio has loaded.
});
function playAudio(time){
audio.currentTime = time; // jump to 15 secs into the file
audio.play(); // I'm not certain if this line is necessary.
}
确保您在onload
事件侦听器运行JS代码,因此音频标签在代码执行时加载。
林不知道我收到你最后的评论。进出硬盘,所以不应该有延迟加载。但运行脚本干净我得到错误 - 音频未定义 - audio.currentTime =时间;如果我把代码放在if(document.readyState ===“complete”){init(); var ...}我玩playAudio没有定义 - playAudio(15)。不知道如何或什么。谢谢 – Jon
@Jon:我对代码做了一个小修改,试着在你的'readyState'代码中运行这个代码。 – Cerbrus
我不得不改变getElementById(w/o s) - 准备好的听众没有错误也没有声音。无监听器TypeError:document.getElementById(...)为null因为我在使用桌面,我不需要等待加载? – Jon