初探瀏覽器的audio
前言
最近想要在引擎裡加入聲音相關的功能,但以前卻從來沒有在瀏覽器寫過聲音相關的功能,在此將學習的過程做個紀錄。內容
在瀏覽器要撥放聲音Web Audio API與Audio element,API的部分用起來比較複雜,但可以控制較多特性,element的部分用起比較簡單,但能控制的特性就比較有限。最後我選了element,因為簡單而且工能夠用。使用Audio element時,和使用Image element時很像,以下是範例
var audio=new audio();
var dataLoadEnd = false;
audio.onloaded = function(){
console.log("Load end!");
dataLoadEnd = true;
}
function playAudio(){
if(!dataLoadEnd)
return;
audio.play();
}
function pauseAudio(){
if(!dataLoadEnd)
return;
audio.pause();
}
function replayAudio(){
if(!dataLoadEnd)
return;
if(!audio.paused)
audio.pause();
audio.currentTime = 0;
audio.play();
}
使用play()來啟動撥放,用pause()控制停止,如果需要重新撥放的話先pause(),再把"currentTime"這個property設成0,接著再play()即可。每個Audio element可以視為一個音軌,不會有同時只能撥放一個之類的問題,在實現聲音引擎的多音軌可說是相當方便。還有一些時用的property,像是"loop",可以控制循環撥放,還有"volume",用來控制音軌的音量。
參考資料
Audio elementWeb Audio API
沒有留言:
張貼留言