假设我有一个90秒长的音频文件。
我希望加载此音频文件以供用户播放,但播放时间限制在10到40秒之间。
我想要实现的目标:
答案 0 :(得分:3)
有类似的问题
解决方法如下,如果有人试图在外面选择,这会将播放拖动到片段的开头,同样在片段结尾处这样做:
<audio controls ontimeupdate="restrictAudio(this)">
<source src="horse.ogg" type="audio/ogg">
<source src="horse.mp3" type="audio/mpeg">
</audio>
<script>
function restrictAudio(event) {
// Trying to stop the player if it goes above 10 second
if (event.currentTime < 10 || event.currentTime > 40) {
event.pause();
event.currentTime = 10
}
}
</script>
答案 1 :(得分:1)
var startTime = 10;
var endTime = 15;
// Get our audio (could also get an audio element from the DOM)
var audio = new Audio('http://www.tonycuffe.com/mp3/cairnomount.mp3');
// Must start before we can set the time
audio.play();
// Must make sure audio is ready
// see: http://stackoverflow.com/a/20240607/1968462
audio.addEventListener("canplay", function() {
audio.currentTime = startTime;
});
// Every 1000ms (1 second), we check if we've exceeded the bounds and if so, we
// set the time back to the end.
setInterval(function(){
if(audio.currentTime > endTime) {
audio.currentTime = startTime;
}
console.log(audio.currentTime);
}, 1000);
示例:http://jsfiddle.net/bn66s67q/1/
请注意,这不是一个好方法。用户必须下载整个文件,而不仅仅是截断的部分。您应该强烈考虑截断文件。您甚至可以使用音频编辑库执行截断服务器端。
另请注意,这并不完全正确。我已将当前时间的日志记录添加到上面的示例中(在JavaScript控制台中查看)。你会注意到你可以休息一下。如果您需要精确度,可以缩短间隔时间。
以上代码适用于最新版本的Firefox,Chrome和IE(我没有测试任何其他版本)。
答案 2 :(得分:0)
<script>
var audiofile = document.getElementById("myAudio");
var currenttime= audiofile.currentTime;
currenttime=10;
if(currenttime>39){currenttime=10;}
</script>