把音樂隨意塞滿你的 SE Walkman 手機

23:39 0 Comments A+ a-

買了 SE Walkman 手機後,一直都有一個怪怪的困擾,我想有用過 W 系列(其他系列也有)的朋友們多半都會遇到吧。

寫在前面
就是使用官方版的 MediaManager 把音樂檔(.mp3 or .aac 等...)丟到手機記憶卡後,竟然會出現一大堆亂碼,中日文通通完蛋。並且造成檔案無法被手機的 Walkman 程式讀取,因為讀不了,當然也聽不到了T_T

我曾經在某站找到疑似解決的方法,那位朋友是把全部欲轉入的音檔的 ID3 Tag 通通清掉,再寫入自己的設定值。這方法似乎有效,但是卻喪失了 SE Walkman 系列的原意,以 ID3 Tag (v2) 來分門別類。是以,我個人以為那位朋友的處理方式並不十分妥當。

經過幾天的 Try and error,我發現一些眉目啦。Walkman 程式對單一檔案的讀取,不論中、英、日文等,都很正常。一旦切換到自訂的播放清單(.m3u),又幾乎掛點。試過把播放清單以各種 Unicode 編碼存檔,依然無效,甚至會造成當機。

接著忽然靈機一動,想到 iPod 的轉檔方式,如果我把中日文檔名的音樂檔案,改名為英數字,咦咦~Walkman 程式它接受了,但音檔裡頭的 ID3 Tag 則完全可以正確讀出來,中日韓文皆可以(或許會掉些字)。不過,總的來說,以經算是個很不錯的解決方法了,原來 SE Walkman 的自訂清單只能讀 ASCII 編碼的檔案。所以所以,我自己動手寫了支小程式來取代官方版的 MediaManager,批次更名,並自動產生 SE W 系列適用的自訂清單,其他系列的手機可能不適用。

程式目的
以亂數取出不重覆的音樂檔塞入手機記憶卡,並產生對應的播放清單。以 SE W880i 為例,記憶卡中會有一 music 的資料夾,程式將在 music 建立一個 RMCollector 的子目錄,用來存放前述的音檔,以方便管理。而程式自動產生的自訂播放清單則將會存檔於 music 資料夾上,並名為 RM播放清單.m3u

使用方法




看圖說故事,其實很容的,設定好 音樂來源資料夾,及音樂目的資料夾 之後,再按下 塞音樂 按鈕即可。塞音樂的篩選,目前預設是 .mp3.aac兩種較常用的音樂格式,其餘忽略。如何,夠簡單吧。目前預設是設定塞入 100 首歌曲,或是直到空間不足即停止,並關閉。當程式執行完成,會將來源、目的記錄起來,也會在程式執行的路徑產生一個 cache 的索引檔(其實它只是一個標準的 XML 檔案),在沒有增刪歌曲的情況下,免去再一次掃瞄指定路徑下的所有歌曲,用以加速執行效率。至少在我這邊超過 3000 張 CD 音樂轉錄成近 40,000 多個音檔,有索引是快很多的。當然,硬體配備越好掃瞄得越快。

另外,在複製檔案的部份,是以系統的基本複製方法來執行,實在是不太快,複製完 100 首,大約要花掉我 15~17 分鐘左右。是以,我又實作了 Sector Copy 的方式,效率有加快許多,估計有 30% 的提升。不過,似乎還有些 bug,或是因為來源檔案/路徑的某些些編碼,造成偶發的不穩定,會把記憶卡格式化XD 。所以,目前暫時不釋出這個版本的程式,免得害到其他朋友,等我把這個 bug 找到再釋出@_@

以上,又是小賤健一支無聊的小程式,有需要的請拿去用吧。不過呢,這程式可能還有不完善的地方,也許蟲沒抓完,如果不小心造成站友的損失,請鞭小力一點。如果有什麼需要改進的地方,也請各位不吝指教,感謝各位m(_._)m




RndMusic.7z 24,059bytes → RndMusic.exe 52,224bytes
測試在 XP / Vista 都能正常運作,其餘 Windows OS 沒時間試,不明。基本上,.NetFramework 3.5 能裝的就應該能跑才是。
下載 RandMusic 程式


---
PS: 這程式,目前在我的 SE W880i 跑了多次,除了 Sector Copy 造成的格式化以外,其餘的尚稱正常啦。當然,自訂播放清單的部份,肯定是沒問題的啦。至於不是 SE Walkman 系列,甚至是他牌 Player,也都可能可以使用,但是程式產生播放清單應該就不適用了。

PS2: Icon 是從 這裡 挖來用的,特此告知:D

PS3: 本程式於 .NetFramework 3.5 平台開發完成,所以一定要安裝。如果沒裝過的朋友,可以從 這裡 下載。

PS4: 相關討論在 PIL