<audio id="sound" controls loop
onabort="console.log('abort');"
oncanplay="console.log('canplay');"
oncanplaythrough="console.log('canplaythrough');"
ondurationchange="console.log('durationchange');"
onemptied="console.log('emptied');"
onended="console.log('ended');"
onerror="console.log('error');"
onloadeddata="console.log('loadeddata');"
onloadedmetadata="console.log('loadedmetadata');"
onloadstart="console.log('loadstart');"
onpause="console.log('pause');"
onplay="console.log('play');"
onplaying="console.log('playing');"
onprogress="console.log('progress');"
onratechange="console.log('ratechange');"
onreadystatechange="console.log('readystatechange');"
onseeked="console.log('seeked');"
onseeking="console.log('seeking');"
onstalled="console.log('stalled');"
onsuspend="console.log('suspend');"
ontimeupdate="console.log('timeupdate');"
onvolumechange="console.log('volumechange');"
onwaiting="console.log('waiting');">
<source src="s.mp3">
<source src="s.ogg">
</audio>
<a onclick="play();">PLAY</a>
<a onclick="pause();">PAUSE</a>
<a onclick="go(30);">GOTO(30s)</a>
<a onclick="skip(10);">SKIP(10s)</a>
<a onclick="reset();">RESET</a>
<a onclick="mute();">MUTE</a>
<a onclick="rateup(0.5);">RATEUP(+0.5)</a>
<a onclick="ratedown(0.5);">RATEDOWN(-0.5)</a>
<a onclick="timeupdate();" id="btn_time">TIMEUPDATE</a>
<a onclick="duration();" id="btn_duration">TOTAL</a>
<a onclick="volume(0.3);">VOLUME(0.3)</a>
<div id="barBd"><div id="bar"></div></div>
<script type="text/javascript">
var TARGET = document.getElementById('sound');
function play(){
TARGET.play();
}
function pause(){
TARGET.pause();
}
function go(seconds){
TARGET.currentTime = seconds;
}
function skip(seconds){
TARGET.currentTime += seconds;
}
function reset(){
TARGET.pause();
TARGET.currentTime = 0;
}
function mute(){
if(TARGET.muted){
TARGET.muted = false;
}else{
TARGET.muted = true;
}
}
function rateup(Num){
// play()後反映、1が通常、0が停止
TARGET.play();
TARGET.playbackRate += Num;
}
function ratedown(Num){
TARGET.play();
TARGET.playbackRate -= Num;
}
function timeupdate(){
TARGET.play();
TARGET.addEventListener("timeupdate", function() {
var NOW = Math.floor(TARGET.currentTime);
document.getElementById('btn_time').innerHTML = NOW + 's';
}, true);
}
function duration(){
var TOTAL = Math.round(TARGET.duration);
document.getElementById('btn_duration').innerHTML = TOTAL + 's';
}
function volume(Num){
TARGET.volume = Num;
}
/*++ jQueryを使ったオリジナルプログレスバー ++*/
$(function(){
$('a').click(function(){
if(!TARGET.paused){
var TOTAL = Math.round(TARGET.duration);
TARGET.addEventListener("timeupdate", function() {
var NOW = Math.round(TARGET.currentTime);
var PERCE = (NOW / TOTAL * 100) + '%';
$('#bar').css({'width':PERCE});
}, true);
}
});
});
</script>