在阅读和操作本修改版前请您首先阅读这两篇文章:
使Kindle 3支持AAC/FLAC/MP3/OGG等音乐格式的MPlayer for Kindle
Mplayer for Kindle 3 安装后的注意事项
本来我想只给出一个自己制作的Mplayer for Kindle3修改版,那样会更简单一些。但我想可能我喜欢的操作模式不一定适合别人,授之于鱼不如授之于渔,索性我就把修改的过程也帖出来,如果有兴趣的同学也可以试着自己修改,这才是真正意义上的定制。
OK,让我们开始吧。
点击这里下载Mplayer for Kindle3沙风修改版2.0
Update( 2012-2-19 ):
修改control.sh文件,使Mplayer在使用过程中屏保程序自动关闭,而Mplayer停止使用时屏保程序再自动开启。
使用说明:
1. 将修改版压缩文件解压缩到kindle3根目录
2. 播放的音乐文件可以放在/mymusic/all/ 或者/mymusic/playdir/ 文件夹中(比如,在all文件夹中放流行音乐,在playdir中放纯音乐)
3. 可以用文本编辑器打开编辑/mplayer/文件夹中的playlist和playlist2文件,添加播放歌曲列表。
比如:
/mnt/us/mymusic/all/HotelCalifornia-Eagles.m4a
/mnt/us/mymusic/all/BecauseILoveYou-ShakinStevens.MP3
需注意的是在播放列表中的音乐文件名不能是中文,否则会无法播放。
Update(2011-8-20):多谢“5fh”的提醒,如果想让播放列表支持中文,只要将此playlist文件编码转为UTF-8格式即可。(如果不会转换可以先Google之,如果仍然不会可以给我留言。)
4. 播放控制快捷键:
shift+L+L 播放playlist歌曲列表
shift+K+K 播放playlist2歌曲列表
shift+A+A 播放/mymusic/all/文件夹中的所有歌曲
shift+D+D 播放/mymusic/playdir/文件夹中的所有歌曲
shift+R+R 随机播放/mymusic/all/文件夹中的所有歌曲
shift+Space+Space 暂停播放
shift+S+S 停止播放
shift+P+P 转至前一首歌曲
shift+N+N 转至下一首歌曲
好,到这里你已经可以正常使用此修改版了。如果你不想深入地了解如何进行修改的过程,下面就可以不用看下去了。如果在使用过程中碰到问题可以在留言中提出。
=============================================================
深入探讨Mplayer for Kindle 3定制过程:
安装完MPlayer for Kindle后,你会发现有两个文件夹,一个是mplayer文件夹,一个是launchpad文件夹,先来说明一下如何修改音乐播放快捷键。Mplayer 播放快捷键由launchpad文件夹中的mplayer.ini控制,所以我们只要修改这个文件就可以了。
使用文本编辑器打开launchpad文件夹中的mplayer.ini,如下:
[Actions]
## Launch the playlist, see mplayer/playlist
M L = !/mnt/us/mplayer/control.sh playlist## Play everything in the music directory
M A = !/mnt/us/mplayer/control.sh playall## Play everything in the music directory, in random order (Shuffle)
M R = !/mnt/us/mplayer/control.sh playrandM Space = !/mnt/us/mplayer/control.sh pause
M S = !/mnt/us/mplayer/control.sh stop
M P = !/mnt/us/mplayer/control.sh prev
M N = !/mnt/us/mplayer/control.sh next
我把这个文件修改成了如下这样:
[Actions]
## Launch the playlist, see mplayer/playlist
L L = !/mnt/us/mplayer/control.sh playlist## Launch the playlist2, see mplayer/playlist2
K K = !/mnt/us/mplayer/control.sh playlist2## Play everything in the music directory
A A = !/mnt/us/mplayer/control.sh playall## Play everything in the custum music directory
D D = !/mnt/us/mplayer/control.sh playdir## Play everything in the music directory, in random order (Shuffle)
R R = !/mnt/us/mplayer/control.sh playrandSpace Space = !/mnt/us/mplayer/control.sh pause
S S = !/mnt/us/mplayer/control.sh stop
P P = !/mnt/us/mplayer/control.sh prev
N N = !/mnt/us/mplayer/control.sh next
说明:
L L = !/mnt/us/mplayer/control.sh playlist
其中 L L 代表快捷键 shift+L+L ,默认是shift+M+L,可以看到我修改了默认快捷键。这里你可以修改成自己喜欢的快捷键。
K K = !/mnt/us/mplayer/control.sh playlist2
程序默认只有一个播放歌曲列表,我定制的修改版中增加了一个歌曲列表,列表名称为playlist2,这一行命令是我增加的,用以控制第二个音乐播放列表。
D D = !/mnt/us/mplayer/control.sh playdir
程序默认只能播放一个本地文件夹中的音乐文件,我定制的修改版中增加了一个音乐播放文件夹,名称为playdir,这一行命令是我增加的,用以控制播放第二个音乐文件夹。
修改设想:
Mplayer for Kindle3默认只能播放一个文件夹中的音乐,我想修改成可以选择播放两个文件夹中的音乐,比如,可能一个文件夹中我会放流行音乐,另一个文件夹中我会放纯音乐。
Mplayer for Kindle3默认只能播放一个音乐列表(Playlist),我想修改成可以选择播放两个音乐列表(Playlist 和 Playlist2),比如,可能一个音乐列表是英文歌曲,另一个音乐列表是古典音乐。
动手定制修改:
那么,我们需要修改Mplayer文件夹中的control.sh文件,因为control.sh是控制Mplayer播放器的主文件。
用文本编辑器打开control.sh,修改说明如下所示:
#!/bin/sh
## See http://www.mplayerhq.hu/DOCS/tech/slave.txt for docs## /mnt/us is the root directory when mounting the Kindle via USB
## 这里增加了MUSICDIR2与PLAYLIST2,其中/mnt/us 是系统根目录。可以看到我设置的音乐文件夹分别是/mymusic/all 和/mymusic/playdir
INSTALLDIR=/mnt/us/mplayer
MUSICDIR=/mnt/us/mymusic/all
MUSICDIR2=/mnt/us/mymusic/playdir
PLAYLIST=”$INSTALLDIR/playlist”
PLAYLIST2=”$INSTALLDIR/playlist2″## Value between -20 and 19, decrease in case of music lags
NICENESS=”-10″FIFO=/tmp/mplayer.fifo
MPLAYER=”nice -n$NICENESS $INSTALLDIR/mplayer -ao alsa -slave -quiet -input file=$FIFO”
SHUF=”$INSTALLDIR/shuf”if [ ! -e $FIFO ]; then
mkfifo $FIFO
filistmusic() {
## We can’t allow non-valid file in the playlist because it would make prev behave weirdly
find $MUSICDIR -type f -regex ‘.*\.\(3gp\|aac\|flac\|ogg\|m3u\|m4a\|mp3\|pls\|wav\|wma\)’
}
##以下listmusic2()是为播放MUSICDIR2增加的代码
listmusic2() {
## We can’t allow non-valid file in the playlist because it would make prev behave weirdly
find $MUSICDIR2 -type f -regex ‘.*\.\(3gp\|aac\|flac\|ogg\|m3u\|m4a\|mp3\|pls\|wav\|wma\)’
}cmd() {
if [ "x$(pidof mplayer)" = "x" ]; then
return 1;
fi
echo “$@” > $FIFO
return 0;
}loadplaylist() {
if ! cmd “loadlist $1″; then
$MPLAYER -loop 0 -playlist $1 &
fi
}case “$1″ in
playall)
listmusic > /tmp/mplayer.playlist
loadplaylist /tmp/mplayer.playlist
;;
## playdir) 是为播放MUSICDIR2增加的控制代码
playdir)
listmusic2 > /tmp/mplayer.playlist
loadplaylist /tmp/mplayer.playlist
;;
playrand)
listmusic | $SHUF > /tmp/mplayer.playlist
loadplaylist /tmp/mplayer.playlist
;;
playlist)
loadplaylist $PLAYLIST
;;
## playlist2) 是为播放PLAYLIST2增加的控制代码
playlist2)
loadplaylist $PLAYLIST2
;;
pause)
cmd “pause”
;;
stop)
killall mplayer
;;
prev)
cmd “pt_step -1″
;;
next)
cmd “pt_step 1″
;;
*)
## 在下面启用了playdir playlist2命令
echo “Usage: $0 {playall|playdir|playrand|playlist|playlist2|pause|stop|prev|next}”
exit 1
;;
esacexit 0
注:以上代码中的阴影部分为说明文字,在程序使用时请删除。
这就是修改过程的简要说明,欢迎大家留言讨论。
关键词: 使用方法
音乐名是支持中文,只是playlist必须转为 UTF-8编码 保存
楼主能否实现以下两种功能:1是增加对ape的支持;2是断点续播功能
@5fh
谢谢提醒,playlist编码转为UTF-8后的确解决了中文音乐文件名的问题。
另外,不知你说的断点续播功能是何意思,我是否可以理解为暂停快捷键?
Space Space = !/mnt/us/mplayer/control.sh pause
最后,关于APE的支持我个人觉得无所谓,因为从音乐格式的播放上看,播放APE格式的音乐需要消耗更多的硬件资源,而FLAC同样是无损格式,在播放硬件所占用资源上看就会轻松许多。这也是FLAC在大多数多媒体播放器上被优先支持的根本原因。
而且,如果手上只有APE格式,将APE格式转为FLAC格式也是小儿科的技术。您认为如何?
怎么打开啊
能否显示播放列表呢?这样很多歌曲就能选择了,不需要一个一个去下一首。
装上了,就是还没有成功实现流媒体播放。有两个问题。1,添加流媒体地址时的正确格式和注意事项。2,有效的流媒体地址。
可否来信指导一下?2689450@qq.com,我最想实现的就是豆瓣FM的功能。
@moses13
关于流媒体的问题请参见以下帖子。enjoy!
http://bbs.mydoo.cn/forum.php?mod=viewthread&tid=58006&extra
关于屏保的问题, 我的解决办法是 修改 control.sh 如下:
loadplaylist() {
if ! cmd “loadlist $1″; then
## $MPLAYER -loop 0 -playlist $1 &
## lipc-set-prop com.lab126.powerd preventScreenSaver 1 设置1禁止屏保, 0 启动屏保, 可以省掉 disableScreensaver 这一步
( lipc-set-prop com.lab126.powerd preventScreenSaver 1; $MPLAYER -loop 0 -playlist $1; lipc-set-prop com.lab126.powerd preventScreenSaver 0 ) &
另外如果想能同时听音乐与有屏保,二者兼得, 可以为control.sh 中新加一个命令行参数
case “$1″ in ## ssplayer以下为新加入内容
ssplayer)
( killall -KILL mplayer; lipc-set-prop com.lab126.powerd preventScreenSaver 0 ) ## 关掉老的, 允许屏保
## 命令行开启屏保
powerd_test -p
## 启动播放器, 可参看沙风兄的修改方式
listmusic | $SHUF > /tmp/mplayer.playlist
loadplaylist /tmp/mplayer.playlist
## 先停止屏保电源的守护程序, 此时会将刚才屏保
## 产生的计划任务清空, mplayer就得以保留不被
## kill掉
## 再启动屏保电源的守护程序, 如果要关掉屏保
## 需要两次滑动释放power键
/etc/init.d/powerd stop
/etc/init.d/powerd start
;;
另外在mplayer.ini文件加个快键调用上面的命令行参数
## screensaver player
Shift M = !/mnt/us/system/mplayer/control.sh ssplayer
基本修改如此, 希望对要求完美的朋友有用!
@byzhou
谢谢你的方法。我有空先来试试。然后再来报告试用情况。
@byzhou
已经更新沙风修改版至2.0,从此杜绝屏保程序的干扰。
感谢你!