分享
 
 
 

自制联想i966手机音乐播放列表

王朝other·作者佚名  2008-12-28
窄屏简体版  字體: |||超大  

i966电话可以支持播放MP3和WMA两种格式的声音文件,并且可以连接蓝牙立体声耳机。可是,不知产品设计的时候出于什么考虑,在音乐播放方面出了纰漏。

我喜欢在锻炼身体的时候,听评书或者小说的音频文件。你知道,运动的时候,最好就是带着蓝牙立体声耳机——因为没有线的束缚很方便。但是i966的播放器跟了我很大的打击:

1、音频播放器,不支持播放单个子目录的音乐文件!这使得每次要在几百个都放在music目录下的音频文件中寻找自己想要的那一个非常费力。

2、那好,你不是支持播放列表吗?咱不怕麻烦建立播放列表!小说的音频文件一般都会压缩成比较小的WMA格式,可是发现建立播放列表的功能里面竟然无法增加wma文件!MP3文件也有见不到的。(明显是BUG)。

3、咱不用播放器,在文件夹里面不是可以直接播放音频文件吗?咱不怕费力,每次都找呗。可是又发现了致命的毛病:在文件夹中直接播放音频文件竟然不支持蓝牙耳机!每次声音都是从扬声器中传出来的(不知道设计的时候出于什么考虑?),最要命的是,文件夹中直接播放音频使用的简易播放器不能实现快进,在听一集半小时的评书一半的时候,突然来个短信,整个就停了!你还要从头开始再听一次嘛?我完全疯了!

真的就这么难吗?

我想了几种方案解决这个问题,首先可以肯定的是,我必须使用多媒体功能里面的音乐播放器,因为文件夹里面的简易播放器实在没法弄。于是就要想办法让前者支持wma的播放列表。否则,全都转换为MP3文件,占用空间太大,而且选择歌曲也忒不方便了!(再鄙视一下不支持播放文件夹的设计!)。所以我决定还是看看能不能自己生成播放列表,让播放器支持我的需求!

一、首先要分析i966的播放列表。

我建立了一个小的播放列表,发现是在手机内存的音乐目录下,产生一个叫做XXX.lst的文件。于是传到电脑上分析,一看,并非我想象的文本文件,是一个二进制文件。而且还是编码过的。通过列表中的几个英文歌曲名,我经过试验,终于搞清楚的它的结构:每条歌曲名占152个字节固定长度,最前面2个字节是表示音乐存放的位置,01表示在手机内存,02表示在存储卡上面,在后面跟随着是utf-8(ucs-2)编码的歌曲名称(一看就是高级语言用序列化写的文件)。文件结尾,跟一个文件结束符3E。

二、实验

我必须验证一下设计师在设计播放列表的时候不支持WMA是忘了,还是真的另有原因!于是我在UltraEdit手工编辑了一个播放列表,带有WMA文件的,传到手机上实验,支持得非常好!这下就放心了

三、写程序!

知道了文件格式,写程序就简单了,我本来想写一个Windows程序给大家共享,可后来想,这些明显的问题,也许厂家下个版本的升级就会解决了。就不费劲了。还是用perl写命令行脚本好了。好在perl语言对unicode支持得相当好!我写的源代码就不全列出来了,其实就是读一个编辑好的文件,然后转成一条条的unicode二进制文件保存起来。其中转换部分的代码如下:

foreach $inline (@in_file)

{

chomp($inline);

@line = split(/,/ , $inline);

if($line[0] eq "1")

{

$mem = "\x00\x01";

}

else

{

$mem = "\x00\x02";

}

$songname = $line[1];

$songname = decode('gb2312',$songname);

$songname = encode('ucs-2',$songname);

$namelen = length($songname);

$zeronum = 152 - 2 - $namelen;

print OUT ($mem.$songname);

for($i=0;$i<$zeronum;$i++)

{

print OUT ("\x00");

}

print $inline."\n";

}

print OUT ("\x00\x3E");

close(OUT);

我这个程序具体用法是这样的:用记事本编写一个文本文件:每一行代表一个曲目,前面是1或者2,表示存储位置,1是手机内存,2是存储卡。隔一个逗号,接下来是音频文件名。看起来像这样子:

2,邪兵谱 (01).wma

2,邪兵谱 (02).wma

2,邪兵谱 (03).wma

2,邪兵谱 (04).wma

2,邪兵谱 (05).wma

2,邪兵谱 (06).wma

2,邪兵谱 (07).wma

2,邪兵谱 (08).wma

。。。

存成“邪兵谱”文本文件,最好不要扩展名。

然后运行程序:

开始-》运行-》cmd进入DOS窗口

C:\Documents and Settings\My Documents\>perl playlist.pl 邪兵谱

Create a playlist for lenovo i966 phone

(c)200802 by XXX

2,邪兵谱 (01).wma

2,邪兵谱 (02).wma

2,邪兵谱 (03).wma

2,邪兵谱 (04).wma

2,邪兵谱 (05).wma

2,邪兵谱 (06).wma

2,邪兵谱 (07).wma

2,邪兵谱 (08).wma

Output to : 邪兵谱.lst

C:\C:\Documents and Settings\My Documents\>

然后把生成的邪兵谱.lst文件传到手机内存的music文件夹下面即可。进入播放器,按选项选择播放列表,哈哈!全都有呢!这下子再也不怕听着听着半截来短信了!因为这个播放器支持后台播放和自动恢复功能!

我们可以在电脑上准备好大量音乐文件,使用"dir > XXX.txt"管道命令可以很方便的生成播放列表输入文件,经过简单编辑就可以转换了,但是要注意,文件名要跟实际手机上的一样啊。

我这个脚本可以编译成.exe文件免费提供给大家,有需要的朋友可以留下电子信箱给我。

(AD209原创,转载请声明谢谢!)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有