12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- var dot;
- $(function () {
- $('.toggle').click(function () {
- audio = $(this).parents('div').children('audio')[0]
- audio.addEventListener('timeupdate', updateProgress, false);
- audio.addEventListener('ended', audioEnded, false);
- if (audio.paused) {
- audio.play();
- $(this).parents('div').children('.controls').children('button').children().removeClass('glyphicon-play').addClass('glyphicon-pause')
- } else {
- audio.pause();
- $(this).parents('div').children('.controls').children('button').children().removeClass('glyphicon-pause').addClass('glyphicon-play')
- }
- })
- $('audio').on("loadedmetadata", function () {
- $(this).siblings('.controls').children('#audioTime').text(transTime(this.duration));
- var span = $(this).siblings('.pgs').children('span')
- if (!dot) {
- while (span.width() < span.parents('.panel-body').width()) {
- span.html(span.html() + '.')
- }
- dot = span.html().length
- } else {
- var s = ''
- for (let i = 0; i < dot; i++)s += '.'
- span.html(s)
- }
- });
- $('.pgs span').click(function (e) {
- var rate = (e.offsetX) / $(this).width();
- audio = $(this).parents('div').children('audio')[0]
- audio.currentTime = audio.duration * rate;
- var value = Math.floor((audio.currentTime / audio.duration) * dot - 0.01);
- var s = '';
- for (let i = 0; i < dot; i++)s += (i > value) ? '.' : ((i == value) ? '|' : '=')
- $(audio).siblings('.pgs').children('span').html(s)
- $(audio).siblings('.controls').children('.played-time').html(transTime(audio.currentTime));
- });
- window.onresize = resizeA
- })
- function resizeA() {
- var span = $($('.pgs>span')[0])
- span.html('')
- while (span.width() < span.parents('.panel-body').width()) {
- span.html(span.html() + '.')
- }
- dot = span.html().length
- $('.pgs>span').html(span.html())
- }
- function transTime(time) {
- var duration = parseInt(time);
- var minute = parseInt(duration / 60);
- var sec = duration % 60 + '';
- var isM0 = ':';
- if (minute == 0) minute = '00';
- else if (minute < 10) minute = '0' + minute;
- if (sec.length == 1) sec = '0' + sec;
- return minute + isM0 + sec
- }
- function updateProgress(e) {
- var value = Math.floor((this.currentTime / this.duration) * dot - 0.01);
- var s = '';
- for (let i = 0; i < dot; i++)s += (i > value) ? '.' : ((i == value) ? (this.paused?'|':'>') : '=')
- $(this).siblings('.pgs').children('span').html(s)
- $(this).siblings('.controls').children('.played-time').html(transTime(this.currentTime));
- }
- function audioEnded() {
- this.currentTime = 0;
- this.pause();
- $(this).parents('div').children('.controls').children('button').children().removeClass('glyphicon-pause').addClass('glyphicon-play')
- }
|