Kplayer简介:一款MP3播放器,支持单曲、列表播放,自动记录播放位置,刷新页面可接着上次位置继续播放。代码用as3制作,UI部分全部是用代码画出来的,没有用到一点flash导出的素材。界面仿照Chrome的HTML5播放器界面,差不多类似HTML5的audio标签。还可以配合HTML5标签一起使用。
功能列表:
- 1、自动记录播放歌曲的位置,即使刷新页面也会接着继续播放(并且,比如在firefox下播放,然后关闭页面,再用IE或其他浏览器打开,还会接着播放,这个记录是跨浏览器的)。
- 2、不仅支持播放单曲,还支持播放json或xml格式的歌曲列表。
- 3、可定义json/xml列表的路径。
- 4、支持单曲循环、歌曲列表循环播放。
- 5、可自定义从歌曲列表的第几首开始播放。
- 6、歌曲加载错误会自动切换下一首,xml/json格式错误、加载错误会提示。
- 7、可自定义默认的播放音量,可拖动、点击、滚轮控制音量。
- 8、歌曲播放进度(在已加载的范围内)可拖动或点击控制。
- 9、可显示歌手、歌曲名称。
- 10、键盘控制:暂停、继续播放、上一首、下一首、快进、快退、音量调节。
- 类似:暂停、继续播放、切换静音、加载进度条这些普遍的就不详细列出了。
update log:
2011-07-26: 更新版本号为1.2.2
fix:修复储存播放信息的判断,之前的不严格会导致记录冲突
fix:如果歌曲列表的歌曲地址全部失效(播放器没有1首歌可以正常播放),提示加载歌曲失败,并停止播放和记录。
fix:增加一个极少数情况发生的歌曲加载失败的判断
fix:一些操作如果不影响记录结果,就暂停自动记录,减少资源占用。
add:新增参数:record,为0就不自动记录播放位置
是否开启自动记录就看个人需求吧,我测试同时播放3个(每个都自动记录),内存变化不大,cpu使用和那些视频门户播放1个视频时差不多,此时应该算很正常了。所以如果一个页插入多个播放器一起播放(每个都开启自动记录),就控制在3-4个左右吧,这样应该没啥问题。Ps:同页面多个播放器千万不可把name参数的值都设置成一样的,例子可看下面参数列表的说明。
add:鼠标移到按钮上显示提示按钮功能
add:焦点在播放器上时,Tab键显示快捷键提示
Note:不使用Tab键切换按钮焦点的原因:
1、flash里的元素获得焦点后,默认空格、回车都会触发焦点的事件,所以会与播放器产生冲突:
静音按钮获得焦点时,按空格即触发了静音按钮,也触发了暂停/播放按钮;音量滑块获得焦点,焦点会跳到其他按钮(因为按上下左右键会触发改变焦点)。
2、如果是flex做的表单,tab切换是有必要的,就播放器来说tab切换焦点来控制意义不大(已经做了键盘绑定和鼠标提示)。
3、为了满足用tab切换的同学,tab被改成了快捷键的帮助。采用这个折中的办法,我想是最好的解决方案。如果要tab让按钮获得焦点并高亮,不仅要对每个按钮加上focus事件的侦听,还要解决焦点冲突,增加的代码太多了。
2011-07-22: 更新版本号为1.2.1
加入键盘控制快进、快退,代码部分发现了几处可以优化的地方,优化了下。
2011-07-20: 更新版本号为1.2
fix: 修复当拖动音量到0,再点击静音按钮时的切换(改为初始音量)
fix: 播放上一首没加载完,切换下一首有时出现的拖动问题
fix: 重载页面时,播放进度条位置和播放时间没有对应记录的播放位置
add: 键盘控制: 暂停(空格键)、继续播放(空格键)、上一首(ctrl+Left)、下一首(ctrl+Right)、快进(Right)、快退(Left)、音量调节(Up,Down)
2011-06-22: 因为之前做了个基础版了,这次做了些重构,加了些功能,版本定位1.1吧,功能应该足够用了。
演示:(播放歌曲并刷新页面试试。。)
我用的win7sp1,ie8,偶尔会出现ie停止工作,不知是否kplayer的问题呢?
我的typecho演示:http://www.qt06.tk
@晴天
我这里从没遇到过停止工作。看了你的代码,应该是因为你把每个播放器的name都设置成一样的原因。还有最好不要几个播放器同时播放,可设置默认暂停。更新里面我也加上说明了。
提示xml加载失败的你也解决了吧,如果参数错误会读取xml,而xml也不存在,就会有这个提示了~
升级到1.2.2,似乎有一些小的问题,现在不确定是怎么引起的,有可能与读屏软件有关。首先现在tab很容易卡在flash里而无法跳出来。之前的办版本没有该问题
另外现在没有办法找到flash里的按钮了,以前tab偶尔能切换到他们;用读屏的模拟鼠标也能切换到比如歌名、播放进度等,现在已经切换不到了。
ie下,设置object的SeamlessTabbing: "false",tab就会在flash里,既然加了快捷键,tab在flash内就没什么用了,还会和快捷键冲突。有时间我再更新个版本吧,试试支持tab、并解决tab和快捷键的冲突。
非常感谢。不知你是否用QQ,方便的话跟你直接交流一下tab在flash里卡住的问题。我的QQ是115928478
发现bug,当点击MP3未加载的地方,会出现,音频卡掉。、
@泪水
额,这个不算bug了,因为点击未加载的地方是想播放到这里,但是MP3还没加载到这,这时只能跳到已经加载的最后面,就会出现你说的情况了。
嗯,也是,但是应该处理下喔,当点击未加载音频的地方,应该屏蔽用户点击并定位那个帧频为当前的位置。
楼主是否发现在IE9下,不能显示flash.
晕了,是我自己的问题,IE竟然没装flash插件。。。冷汗。。
抱歉,业余时间比较少,目前收集的bug也不太影响使用,所以只能以后更新了,具体我也不确定什么时候能有充裕的时间,我也希望这个播放器能够尽善尽美。
额 无法下载
@mao
那个到期了, 直接下载这个文章里的swf吧.