WAP手机网站 手机下载 手机软件 手机游戏 手机网游 手机主题 手机图片 手机铃声 手机世界微博
手机游戏攻略

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

ad209 3533手机世界 2008-3-1

    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"管道命令可以很方便的生成播放列表输入文件,经过简单编辑就可以转换了,但是要注意,文件名要跟实际手机上的一样啊。


 

手机资讯


手机资讯
低端手机哪个好 1000元左右智能手机推荐
720P视频连播14小时 摩托罗拉XT910 MAXX评测
4.3英寸已成主流 超人气大屏手机推荐
经典游戏重现江湖 一周Android游戏推荐
电信定制售价1999元 HTC新渴望VC上市
三星五一全国促销 热门手机选购推荐
不抢风头不算好手机?HTC Titan II解析
1.4GHz四核+2050mAh 三星GALAXY SIII现身
拍出新花样 800万智能手机+拍照软件推荐
双核智能+投影 三星Galaxy Beam预售4350



手机资讯
专业拍照音乐手机 联想i966仅售1099元
320万像素仅980 联想I966超低价促销
对联想i966手机的个人评价
来款牛机拍圣火 联想I966仅1250元
给打算买i966、i968手机的人的忠告
写给想买联想i966的朋友们
对比联想i966与诺基亚6120c
联想i966草根版使用报
联想966我最赞赏的功能
联想 i966 使用一周年报告
手机论坛


  诺基亚手机 苹果手机 HTC手机 三星手机 摩托罗拉手机 索爱手机