PLAY PAUSE GOTO(30s) SKIP(10s) RESET MUTE RATEUP(+0.5) RATEDOWN(-0.5) TIMEUPDATE TOTAL VOLUME(0.3)
<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>