[Apple] 為什麼 iPod 一定要用 iTunes 傳歌?

這篇文章本來是寫在 PTT 的 Mac 版,因為有太多人一直抱怨為什麼 iPod 一定要用 iTunes 才能傳歌,不能像其他的 MP3 隨身聽一樣直接把歌複製進去就好。於是我由工程的角度來分析,為什麼 iPod 要搭配 iTunes?

我認為就工程的角度而言,用 iTunes 或額外的程式管理 iPod 裡面的歌曲是有其必要性的。

首先來想想,我們會在 iPod 裡面放多少歌?
我剛買一個月,自己有的歌也不多,不過裡面已經放了超過 500 首,相信很多人的 iPod 中遠遠超過這個數目。iTunes 傳歌曲進去的時候,除了把歌複製到 iPod 中,另一個重要的工作就是建立索引。這個索引就是 iPod 能快速選取歌曲的原因。沒有這種索引,iPod 每次要顯示機器內有多少歌,就必須做整個硬碟的掃描,對每個音樂檔作讀取、擷取 ID3 tag 的動作,先不論對整個硬碟掃描會耗掉多巨大的電力,對於這種掌上裝置而言,處理器處理完這麼多資訊要多久?

就讀檔擷取資訊方面而言,應該沒有什麼最佳化的方法,因此只能針對「搜尋有多少歌曲在硬碟中」這個動作來最佳化。

假設利用目錄來分類,首先會遇到的問題是,你必須按照目錄一層層來搜尋,例如以歌手/專輯 的擺放方式,假如用先選歌手,再選專輯的方式來選取會非常快,因為只需要掃描第一層與第二層的一個目錄。但是假如我要像現在 iPod 一樣不經過選取歌手的步驟直接選專輯,就會變慢,因為要掃描第一層加上第二層的所有目錄。甚至假如我要依音樂類型來找歌的話,這種擺放方式甚至不如把所有音樂放在一個目錄下。

根據以上的論點,iPod 需要利用索引來避免上面的問題。那這個索引要由誰建立?iPod 可以自己建立嗎?當然可以,但是雖然把上面的問題解決掉,卻產生了另一個問題。iPod 要花多少電力,多少時間才能自己把這個索引建立出來?iPod 那龜速硬碟,做完完整的硬碟掃描要花多久?要耗掉多少電力?另外 iPod 的 CPU 只有 80MHz,這種速度的 CPU 要把掃描出來的結果編成索引要多久?

你要每次花三分鐘把一張新買的專輯複製進 iPod 裡,然後等他十分鐘把所有東西都掃描完你才能繼續使用嗎?
然後重整完成之後電力只剩 75%,為了充電又接上電腦,充飽拔下來之後 iPod 為了避免檔案有更動,又花十分鐘,25% 的電力掃描一次…然後陷入無止盡的循環?

那我寧可用 iTunes 傳歌…讓 iTunes 把索引建好,然後快快樂樂的用我的 iPod…

Contents

comments powered by Disqus