国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 手機知識 > 正文

自制聯想i966手機音樂播放列表

2024-06-10 11:51:08
字體:
來源:轉載
供稿:網友

    i966電話可以支持播放MP3和WMA兩種格式的聲音文件,并且可以連接藍牙立體聲耳機??墒?,不知產品設計的時候出于什么考慮,在音樂播放方面出了紕漏。

    我喜歡在鍛煉身體的時候,聽評書或者小說的音頻文件。你知道,運動的時候,最好就是帶著藍牙立體聲耳機——因為沒有線的束縛很方便。但是i966的播放器跟了我很大的打擊:

    1、音頻播放器,不支持播放單個子目錄的音樂文件!這使得每次要在幾百個都放在music目錄下的音頻文件中尋找自己想要的那一個非常費力。

    2、那好,你不是支持播放列表嗎?咱不怕麻煩建立播放列表!小說的音頻文件一般都會壓縮成比較小的WMA格式,可是發現建立播放列表的功能里面竟然無法增加wma文件!MP3文件也有見不到的。(明顯是BUG)。

    3、咱不用播放器,在文件夾里面不是可以直接播放音頻文件嗎?咱不怕費力,每次都找唄??墒怯职l現了致命的毛?。涸谖募A中直接播放音頻文件竟然不支持藍牙耳機!每次聲音都是從揚聲器中傳出來的(不知道設計的時候出于什么考慮?),最要命的是,文件夾中直接播放音頻使用的簡易播放器不能實現快進,在聽一集半小時的評書一半的時候,突然來個短信,整個就停了!你還要從頭開始再聽一次嘛?我完全瘋了!
真的就這么難嗎?

    我想了幾種方案解決這個問題,首先可以肯定的是,我必須使用多媒體功能里面的音樂播放器,因為文件夾里面的簡易播放器實在沒法弄。于是就要想辦法讓前者支持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原創,轉載請聲明謝謝!)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 临清市| 秭归县| 衡东县| 江安县| 文山县| 宽城| 通渭县| 威远县| 吉水县| 旬阳县| 陆丰市| 天等县| 波密县| 蓬安县| 民权县| 渑池县| 固安县| 呼伦贝尔市| 天津市| 开阳县| 漠河县| 西贡区| 宁波市| 绥阳县| 元朗区| 抚顺县| 松溪县| 临朐县| 泰安市| 永胜县| 永顺县| 信阳市| 肥西县| 平舆县| 赣州市| 瓦房店市| 成都市| 延津县| 耿马| 延寿县| 仁化县|