HTML5音乐播放器 1
“你的问题主要是读书不多而想得太多”
我就是这种不读书、没干货,遇到问题缺少实践的人~十分羡慕那些会写博客的人,就我来说,写一遍文章简直要比女人生孩子还要难受,半天憋不出一个字~哎,无奈肚子里没有墨水。罢了,直接入主题。
最近为了体验移动端开发做个了在线播放器,其实就是加了个媒体查询~,这是demo地址!
实现的功能:
播放器的基础操作:上/下一曲,播放/暂停,播放模式,时间轴定位
同步歌词
涉及技术:
audio的操作,请参考audio的API
滚动插件iScroll 5
网易云音乐搜索node模块,歌曲来源由node后台服务支撑。
踩到的坑:
在ios7中,采用dom0级事件处理程序注册audio的ended事件无效,是因为给对象添加了多次?
_$audio.onended = function () {player.playNext(); };
移动端点击操作按钮后,动态伪类:hover后保持hover效果,google后,一行代码解决,美团手机端web就是这样做的。
document.body.addEventListener("touchstart", function() {});
css
.control .btns .ply:active {background-position: -40px -204px; }
异步加载DOM造成的高度问题造成iScroll不能滚动
player.init(data); //待数据加载完毕,再实例化IScroll loaded();
歌词滚动时间校对问题
歌词滚动的实现我采用hash表存储时间轴和歌词,将歌词文本反序列化成如下格式
var lry = {'00:00':{index:0,lyric:'不相信会绝望'}};
$audio.on('timeupdate', function () {if (_audio_duration > 0) {$('.cur').width(_audio.currentTime * 100 / _audio_duration + '%');var curTime = timeDispose(_audio.currentTime);//限定1s刷新一次if (player.curTime !== curTime) {var lrc = player.data[player.curIedex].lyric;if (lrc[curTime]) {player._$lyric_wrap.find('.on').removeClass('on');var p = player._$lyric_wrap.find("p:nth-child(" + (lrc[curTime].index + 1) + ")");p.addClass("on");player._$lyric_wrap.css({"transform": "translate(0,-" + lrc[curTime].index * player.lyricLineHeight + "px)","-ms-transform": "translate(0,-" + lrc[curTime].index * player.lyricLineHeight + "px)","-moz-transform": "translate(0,-" + lrc[curTime].index * player.lyricLineHeight + "px)","-webkit-transform": "translate(0,-" + lrc[curTime].index * player.lyricLineHeight + "px)","-o-transform": "translate(0,-" + lrc[curTime].index * player.lyricLineHeight + "px)"});}player.curTime = curTime;$('.curTime').html(curTime);}}});
监听播放器的timeupdate事件,在歌词对象用当前播放时间轴位置查找对应歌词以及歌词的。但是会出现错位的bug,
未解决~大家有什么建议呢~
ps:代码实在不够优雅,大家给点意见重构代码吧~
源码
HTML5音乐播放器 1相关推荐
- 第六节:用audio标签打造一个属于自己的HTML5音乐播放器
上一章节,我们刚刚讲了<video>标签,今晚,我们讲的是<audio>标签,这两个东东除了表示的内容不一样以外,其他的特性相似的地方真的太多了,属性和用法几乎一样,也就说,如 ...
- html音乐播放器如何添加暂停按钮,HotKey播放/暂停HTML5音乐播放器
这是我用于HTML5音乐播放器的一小部分JavaScript代码.我想知道你们是否可以帮我建立一个HotKey来使用Space键切换播放/暂停按钮.有什么想法吗? CODE: $('.tracksli ...
- 简洁的 HTML5 音乐播放器
mePlayer 一款简洁的HTML5音乐播放器.内置两套主题,可在运行时一键切换, 点我在线预览 默认主题 有歌词时滚动显示歌词,无歌词时显示模拟频谱动画 播放中鼠标悬停在界面上滑动滚轮可调节音量, ...
- 仿网易云音乐html代码,仿网易云音乐外链播放器UI的HTML5音乐播放器插件
简要教程 APlayer是一款仿网易云音乐外链播放器UI的HTML5音乐播放器插件.APlayer音乐播放器可以自定义歌曲封面,可以自定义同步歌词等,界面时尚大方,是一款非常好的HTML5音乐播放器插 ...
- html5自动播放音乐外链,仿网易云音乐外链播放器UI的HTML5音乐播放器插件
APlayer是一款仿网易云音乐外链播放器UI的HTML5音乐播放器插件.APlayer音乐播放器可以自定义歌曲封面,可以自定义同步歌词等,界面时尚大方,是一款非常好的HTML5音乐播放器插件. 安装 ...
- 自己动手,打造一款适合 Python 程序员的 Html5 音乐播放器
近期断断续续读了一些 Web Audio API 和 WebRTC API 的文档,发现了很多好玩的东西,有一种"忽入桃花源"的感觉.这一款 Html5 音乐播放器,就是基于 We ...
- 开源html5在线音乐网站,一个漂亮的开源HTML5音乐播放器——APlayer
介绍 APlayer是一个简约且漂亮的html5音乐播放器,支持多种模式,包括播放列表模式.吸底模式 .迷你模式.MSE模式.HLS模式. Github https://github.com/diyg ...
- HTML5音乐播放器
明月浩空-HTML5浮窗音乐播放器研发于2014年,并持续更新至今 是基于QQ音乐.酷狗音乐.网易云音乐等歌曲ID全自动解析的网页音乐播放器 依靠服务器强大的接口功能,只需要一个ID既可获取全部信息 ...
- html中加入音乐播放器,4个小时实现一个HTML5音乐播放器
技术点:ES6+Webpack+HTML5 Audio+Sass 这里,我们将一步步的学到如何从零去实现一个H5音乐播放器. 首先来看一下最终的实现效果:Demo链接 => 界面: skPlay ...
- web html5音乐播放器设计与实现,基于HTML5技术的音乐播放器的设计与实现
Vol.33No.11Nov.2017 赤峰学院学报(自然科学版) Journal of Chifeng University (Natural Science Edition )第33卷第11期(下 ...
最新文章
- Mindmanager 甘特图杠上Mindmanager 鱼骨图
- 安卓惯性传感器(二)
- Python有了concurrent的话mutiprocessing和threading还有存在的意义吗?
- C#中使用多线程访问Winform问题解决方案
- python zip函数转制_Python zip函数及用法
- AngularJS1.5+ 笔记
- 《隋唐演义》二:竞争对手的实力在不断增强
- 人生性格分析02-60干支日
- 使用postman发送post请求下载文件
- OpenCV玩九宫格数独(一)——九宫格图片中提取数字
- 计算机网络物理层测试
- uniapp——uni-admin后台管理系统(使用uniCloud免费云服务器)
- Oracle数据库数据查询语句示例(包含大部分常用语句)
- InDesign 教程如何更改字体和字体大小?
- QT实现绘制箱须图(盒须图)
- 国学*周易*梅花易数 代码实现效果展示 - 梅花心易
- 跳格子/贪心算法例题详解:LeetCode605.种花问题
- 推荐个WIN7下小巧的可转录声音的软件-Audio Record Wizard V6.99
- 工业智能网关BL110应用之九十三: 实现西门子S7-1500 PLC接入OPC UA云平台
- 基于AM5728 DSP+ARM亚马逊物流机器人的设计和实现,实现自动化分拣投递,AGV
热门文章
- 高通骁龙8150采用独立NPU,证明了华为的前瞻性
- 用这个在电脑上玩QQ飞车手游,效果简直秒杀安卓模拟器和手机
- 实例开机显示Booting from Hard Disk
- 笔记本中ps的F8快捷键无效解决办法
- 苹果Macbook Air怎么安装Win7系统图解教程(图)
- 后端配合前端上下箭头调整记录顺序
- 网站建设工具对比:IM Creator, Mobirise, Webydo以及uKit
- Java报错:om.fasterxml.jackson.core.JsonParseException:
- vue-cli--如何使用npm命令
- ThinkPad X1 Nano G2评测