Total Pageviews

Tuesday 23 May 2017

Kplayer 1.2.2 发布

KPlayer 1.2.2 下载地址:http://test.fantxi.com/KPlayer_1.2.2.rar

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吧,功能应该足够用了。

演示:(播放歌曲并刷新页面试试。。)

下载:http://pan.baidu.com/share/link?shareid=284648&uk=3338835672
1.2.2演示:http://www.fantxi.com/demo/KPlayer/

参数列表:

name - 储存序列id,比如:name=1、name=yoursite.com、name=yourName,name=123abc。
目的是为了和其他使用本播放器的站点区别开,否则用户在其他站点播放记录会在你的站点生效,同样你站点也会影响其他人。
如果你把播放器放在博客,而博客的每篇文章都添加一首歌曲,那么建议你这样设置:name=yoursite123(123为文章ID),这样就可每条单独记录,互不影响。
autoplay - 自动播放: 1-自动(默认);0-点击播放
loop - 循环: 0-顺序播放,放完列表停止(默认);1-单曲循环;2-全部循环
start - 从列表的第N(N=N-1)个开始播放(比如,想默认播放第3首: start=2),默认从第1个开始播放,即:start=0
vol - 默认音量: 0-100的整数(默认80)
src - MP3文件的网址
title - 歌曲名称
* 如果设置了上面两项,将不会加载json/xml格式的播放列表。此时即是单曲播放(相当于json/xml列表里面只有1首歌)。
json - json列表的路径,比如: /music/json.txt,json.php,/json.xx,这些可以自己diy了。
xml - xml列表的路径,同样也可以diy。
说明:diy路径、文件名,或者可选择json或xml格式,这个是为了通用性,自己爱用啥用啥。
xml或json只能用一种就OK了,不要同时搞两个列表,你懂的。
另外:如果json、xml都没设置,默认会读取swf同文件夹内的XML格式文件:songs.xml
XML/JSON列表的格式我就不粘代码了,下面两个:
XML列表例子:http://www.fantxi.com/demo/KPlayer/songs.xml
json列表列子:http://www.fantxi.com/demo/KPlayer/songs.txt
查看源文件就看到代码了。
不常用的参数:
preload - 点击才播放时(autoplay=0),是否预加载音频文件: 1-自动(默认);0-点击播放才开始加载
clear - 清空客户端已保存的记录(记录的信息:是否自动播放、MP3播放位置、MP3是第几首、用户设置的音量),以swf的参数为准。此项一般无需设置。
record - 是否自动记录播放位置: 0-关闭自动记录(同时会触发清空记录clear=1);1-开启(默认)。此项一般无需设置。如果关闭自动记录可减少播放器的资源占用,但是不能记录播放位置。

引入方法:

方法1,使用swfobject:
  1. <script src="swfobject.js"></script>
  2. <div id="kpContent"><a href="http://www.adobe.com/go/getflashplayer">Get Flash player</a></div>
  3. <script>
  4. var vars = {
  5.     name: "yoursite.com",
  6.     json: "songs.txt",
  7.     loop: 2,
  8.     vol: 50
  9. },
  10. pars = {
  11.     menu: "false",
  12.     scale: "noScale",
  13.     allowFullscreen: "true",
  14.     allowScriptAccess: "always",
  15.     bgcolor: "#0F0F0F"
  16. },
  17. attrs = {
  18.     id:"KPlayer"
  19. };
  20. swfobject.embedSWF("KPlayer.swf", "kpContent", "300", "35", "10", "expressInstall.swf", vars, pars, attrs);
  21. </script>
方法2,直接插入:
  1. <script>
  2. document.write('<object width="300" height="35" data="KPlayer.swf?name=yoursite.com&autoplay=0&json=songs.txt&loop=2&vol=50" id="KPlayer" name="KPlayer" type="application/x-shockwave-flash"><param name="movie" value="KPlayer.swf?name=yoursite.com&autoplay=0&json=songs.txt&loop=2&vol=50"><param name="allowFullscreen" value="true"><param name="allowScriptAccess" value="always"><param name="backgroundcolor" value="#0F0F0F"></object>');
  3. </script>

参数实例:

name=yoursite.com&src=http://xx.com/xxx.mp3&title=龙的传人
单曲播放,不需要json或xml的播放列表,适合只分享一首歌的情况。
name=yoursite.com&json=json.txt&loop=2&start=0&vol=70
自动播放json.txt内的第1首歌曲,并重复播放这首歌曲,初始音量为70%
name=yoursite.com&xml=132.xml&loop=2
自动播放132.xml内的所有歌曲,列表播放完毕后,继续循环播放。
name=yoursite.com&autoplay=0&preload=0
点击后才开始加载并播放songs.xml内的所有歌曲,列表播放完毕后,停止播放。
name=yoursite.com&autoplay=0&json=songs.txt&loop=1
读取songs.txt内的json格式列表,点击后第1首循环播放。
可以配合HTML5标签一起使用
  1. <audio controls autoplay preload>
  2. <source src="song1.mp3" />
  3. <source src="song2.mp3" />
  4. 这里插入FLASH播放器代码,不支持HTML5的浏览器将看到这里
  5. </audio>
PS:目前Safari 5+/Chrome 6+/IE9才支持播放MP3格式,使用audio标签还不大靠谱,而且IE9 HTML5播放器的样子最丑了.

from  http://www.fantxi.com/blog/archives/kplayer/

No comments:

Post a Comment