html如何播放多个mp3,html5 如何播放多個Mp3文件,有二問。

第一、在chrome下,單個文件無誤,但多個mp3文件1.mp3,2.mp3依次播放,即當1.mp3播放完了,接着播放2.mp3不行。

我試過此法,不行。

我又試了此法;我本意是讓其循環播放,但只能播放最后一個即3.mp3。就是只取了最后一個值。

function playAudio() {

var audioElm= document.getElementById("audio");

var AF=document.getElementById('audioFile').value;

var b=AF.split(";");

for(var i=0;i

//alert(b[i]);

audioElm.src=b[i];

audioElm.play();

}

}

第二問,我使用audio標簽,src中的mp3長度是12秒。

但是,我的要求是,在5秒中播放完,從而實現快速播放的目的。onratechange屬性只是速度變快了,但是播放時間未減少。

7 个解决方案

#1

window.onload = function(){

var arr = ["3.mp3","2.mp3","1.mp3"];//把需要播放的歌曲從后往前排

var myAudio = new Audio();

myAudio.preload = true;

myAudio.controls = true;

myAudio.src = arr.pop();//每次讀數組最后一個元素

myAudio.addEventListener('ended', playEndedHandler, false);

myAudio.play();

document.getElementById("audioBox").appendChild(myAudio);

myAudio.loop = false;//禁止循環,否則無法觸發ended事件

function playEndedHandler(){

myAudio.src = arr.pop();

myAudio.play();

console.log(arr.length);

!arr.length && myAudio.removeEventListener('ended',playEndedHandler,false);//只有一個元素時解除綁定

}

}

#2

============================知道為什么html5設計成可以多個src嗎?人家的原意是以防其中一些src文件無法播放時,可以嘗試播放其它,並不是播放列表來的。簡單講就是從上到下嘗試播放,直到可以播放為止。假如第一個可以播放后面的就沒用了。

for(var i=0;i

audioElm.src=b[i];

audioElm.play();

}

============================這又是另一個概念了:你這是反復對src賦值,當然是最后一個有效。就好像你不斷試穿衣服,到出門時你最終也是只穿了最后一次試的那件上衣。

onratechange:當媒介數據的播放速率改變時運行腳本!這只是一個回調函數。就好像說你感冒了就去看醫生,這只是一個事件處理。但並不表明你現在就感冒了。“我的要求是,在5秒中播放完”重點是你怎么樣要求它快進的?

#3

引用 2 樓 xzy21com 的回復:

去看醫生,這只是一個事件處理。但並不表明你現在就感冒了。“我的要求是,在5秒中播放完”重點是你怎么樣要求它快進的?

多謝謝,祝天天 快樂。

#4

引用 2 樓 xzy21com 的回復:

試播放,直到可以播放為止。假如第一個可以播放后面的看醫生,這只是一個事件處理。但並不表明你現在就感冒了。“我的要求是,在5秒中播放完”重點是你怎么樣要求它快進的?

謝謝了。

我的音頻文件2.mp3 長度有12秒,但是,兩段有空白的(就是從3s-9s有聲音),因此我只希望播放3s-9s。我不希望剪輯音頻,因為太土了。

使用#t=3:9,就不能觸發ended的事件,真是上火,我已給html5小組發郵件了,說明,此處有bug。

我的audio標簽,

我應該怎么辦啊?謝謝了,我百度了所有的資料。

#5

window.onload = function(){

var myAudio = new Audio();

myAudio.preload = true;

myAudio.controls = true;

myAudio.src = "1.mp3";

myAudio.playbackRate=3;//快進3

myAudio.play();

var t=0;

var tt = setInterval(function(){

t++;

if(t==1){

myAudio.playbackRate=1;//恢復正常播放

}else if(t>7){

myAudio.playbackRate=100;//快進,達到盡快結束

clearInterval(tt);

}

},1000);//這里設短了又不起效果

document.getElementById("audioBox").appendChild(myAudio);

myAudio.loop = false;//禁止循環

}

#6

引用 5 樓 xzy21com 的回復:

}

謝謝大哥,祝天天快樂。我一會試驗一番。

#7

太陽光  你的 好像播放完了 再點擊播放 不從第一個播 是最后一個呢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值