- 6
- 0
- 约5.08千字
- 约 5页
- 2016-12-31 发布于重庆
- 举报
HTML5音乐播放器.
HTML5音乐播放器
初学HTML5,感觉audio标签有点兴趣。尝试着做一个播放器,练习过程中发 现,audio的ended事件触发有点小问题第一首播放结束确实只触发了一次ended事件,第二次播放接受触发两次,第三次播放结束触发了4次。导致 一直在列表的1、2两首轮播,完全不顾及第三首的感受。。 在几大论坛上发帖求助未果,于是自己一阵乱搞,加了个判断 if(self.media.currentTime == self.media.duration)如果不满足这个条件触发了ended事件也不去播放下一首。
function Audio(song, playType, dom){ /* * 播放器构造函数。 * dom:为audio元素,可以不传。 * song : 为歌曲列表,只支持数组形式,格式为[{}{}] * playType 为播放方式: 1 顺序播放 2 随机播放 3 单曲循环 4 全部循环 */ if(!dom) { this.media = document.createElement(audio); document.body.appendChild(this.media); }else { this.media = typeof dom == string ? document.getElementById(dom) : dom; } this.currentIndex = 0; this.songList = song; this.countTotal = this.songList.length; this.playType = playType || 1; this.MusicInfo = []; this.playing = false;}/* * 播放器启动主函数 */Audio.prototype.startPlay = function(){ this.media.src = this.songList[this.currentIndex].src; this._play();}/* * 播放器播放核心函数. */Audio.prototype._play = function(){ var self = this; this.media.play(); this.playing = true; this.mediaEvent(ended ,callback); function callback(){ //单曲循环无需单独处理,只需直接调用startPlay()函数。 if(self.media.currentTime == self.media.duration){ switch(self.playType){ case 1: if(self.currentIndex == self.countTotal-1){ return false; }else{ self.currentIndex++; } break; case 2: self.currentIndex = Math.floor(Math.random()*self.countTotal); break; case 4: self.currentIndex++; console.log(self.currentIndex==,self.currentIndex); self.currentIndex = (self.currentIndex self.countTotal-1) ? 0 : self.currentIndex; break; } self.startPlay(); }
您可能关注的文档
- htc329d刷机失败黑屏329d开机无限重启329d救砖刷机完美root..doc
- HTCG11IncredibleS刷Recovery刷机教程..docx
- HTCG8获取root权限超级详细教程..doc
- HTCRUU错误代码..doc
- htcroot后删除程序建议..doc
- HTCThunderbolt(霹雳)玩转CM7ROM之完全设置篇..docx
- HTDW-V大型地网接地电阻测试仪..doc
- HTFA-IV继保仪..doc
- HTGK-HI高压开关动特性测试仪..doc
- HTJY-80B全自动试油器..doc
- 浙江省温州市2024-2025学年七年级上学期语文期末考查卷.docx
- 精品解析:北京市建华实验学校2024-2025学年七年级下学期期中英语试题(原卷版).docx
- 精品解析:北京市通州区2024-2025学年七年级下学期期末考试英语试卷(原卷版).docx
- 精品解析:北京市回民学校2024-2025学年九年级上学期期中语文试题(解析版).docx
- 精品解析:北京市海淀区2025-2026学年九年级上学期期末语文试题(解析版).docx
- 精品解析:北京市东城区汇文中学2025-2026学年八年级上学期期中语文试题(原卷版).docx
- 精品解析:北京市回民学校2024-2025学年九年级上学期期中语文试题(原卷版).docx
- 精品解析:2024-2025学年广东省广州市从化区街口镇中心小学人教版五年级上册期中测试数学试卷(解析版).docx
- 精品解析:北京市通州区2024-2025学年七年级下学期期末考试英语试卷(解析版).docx
- 精品解析:北京市建华实验学校2024-2025学年七年级下学期期中英语试题(解析版).docx
原创力文档

文档评论(0)