点击播放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代码,因此音频标签在代码执行时加载。

+0

林不知道我收到你最后的评论。进出硬盘,所以不应该有延迟加载。但运行脚本干净我得到错误 - 音频未定义 - audio.currentTime =时间;如果我把代码放在if(document.readyState ===“complete”){init(); var ...}我玩playAudio没有定义 - playAudio(15)。不知道如何或什么。谢谢 – Jon

+0

@Jon:我对代码做了一个小修改,试着在你的'readyState'代码中运行这个代码。 – Cerbrus

+0

我不得不改变getElementById(w/o s) - 准备好的听众没有错误也没有声音。无监听器TypeError:document.getElementById(...)为null因为我在使用桌面,我不需要等待加载? – Jon