Site Meter

2007年3月1日

[轉載]通向 KDE 4 之路(六):令多媒體技術更輕鬆的 Phonon

繼續我們的「通向 KDE 4 之路」欄目,今天我們要介紹的是精巧的新多媒體技術 Phonon。Phonon 的設計是為了在 KDE 4 中編寫多媒體程序可以簡單化,並保證這些程序可以在多個平台上及多種聲音體繫上工作。不走運的是,寫這種關於聲音類技術的文章很難配上相應的截圖,所以呢,今天就多講些技術細節吧。

Phonon 是一項新的 KDE 技術,它為多媒體程序播放音頻或視頻時提供了一套應用程序接口(API)。這套接口被設計成 Qt 函數的風格,這樣 KDE 開發者們使用它時就不會覺得很陌生了。(如果您對 Phonon 的 API 感興趣的話,請看看這些在線文檔,這些文檔可能還是最近更新的,不過不能保證)。

首先要指出的是 Phonon 不是一個新的音樂系統服務器,它不會與 xineGStreamer、ESD、aRts 等構成競爭關係。相反,由於這些多媒體程序接口常常會不斷變動,Phonon 以這些其它多媒體技術為後端,提供了一套不變的 API。這樣就方便了,比如當 GStreamer 的 API 改變了,只要 Phonon 做相應的調整就可以了,其它使用 Phonon 的 KDE 程序都不會受到影響。

Phonon 的功能來源於開發者們所謂的「引擎」,每一種引擎支持一種後端。目前開發中的引擎有四種:xine、NMM、GStreamer 以及 avKodeaKode 的繼承者)。可以肯定的是 aRts 光榮退休了,針對它的引擎是不會被開發的了。不過 aRts 還會在其它領域繼續存在的。KDE 4.0 的目標是實現一個「保證可用」的引擎,外加一些可選用的引擎。

已被建議開發的引擎還有 MPlayer、DirectShow(在 Windows 平台上的)和 QuickTime(在 Mac OS X 平台上的)。這些額外的引擎的開發工作還沒開始,因為 Phonon 的核心開發者們更關心的是確保目前開發的這個 API 功能完備。如果 Phonon 的開發者在當前這個 API 還很垃圾的情況下,就去忙於其它引擎的編寫工作,那整個項目不亂套才怪呢(如果您想要出力編寫一個引擎的話,請到 irc.freenode.org 的 #phonon 露個臉吧)。

當用戶或程序選用了某個引擎之後,Phonon 就會使用這個已選中的引擎來確定各個後端所支持的文件格式和解碼器,然後自動允許 KDE 程序播放多媒體文件。目前的 KDE 3 系列中,用戶不得不手動在各個程序(如 Kaffeine、Amarok、Juk 等)中更改引擎,而不是通過 KDE 來選用引擎。

一旦 Phonon 選定了引擎,它就會使程序配合該引擎進行標準的多媒體運轉。這裡的標準的多媒體運轉包括媒體播放器中常用操作,如播放、停止、暫停、尋找等。Phonon 也支持更高級的功能,如定義兩個音軌之間跳轉的方式等,這樣不同的程序就可以共享這項功能而不用每次都去重新實現它。當然,一些程序想要在跳轉時能有更多 的控制,自己設計也沒什麼不可以的。

目前各個引擎中完成進度都好的是 xine,我在我的電腦上已經裝上去並可以工作了。我也嘗試過編譯 NMM(出了名的難編譯、難安裝)和 GStreamer 引擎,可惜沒有成功,另外那個 avKode 默認就是「停用」。我本來還想拿幾張 Juk 或 Noatun 採用 Phonon 播放音頻的截圖出來貼一下,但它們與 KDE 3 系列版本中看起來也沒什麼兩樣(有些界面還更醜一點!)。等它們漂亮點的時候,我就在後續文章中把它們貼出來。

Matthias Kretz 提供了一個較短的視頻文件,說的是在看電影時打開您的揚聲器,驗證設備的切換。Phonon 可以使您的原音頻設備在切換後停止工作,從而您可以聽到聲音突從耳機中消失而在音箱中響起。

Matthias 也提供了下面這張使用 Phonon 設置模塊選擇輸出設備的截圖。這還在改進中,所以看起來還很粗糙。

很難用截圖來反映 Phonon 的工作情況(音頻框架的截圖實在難搞),但我可以描述下使用 Phonon 之後靈巧的一面:網絡透明化。KDE 使用 KIOSlaves 來訪問網絡上的文件,這輕鬆的好像這些文件在自己的電腦上一樣。多媒體程序如 JuK 或 Amarok 也能夠在自己的收藏中非常透明地共享網絡音頻文件,開發者在實現這個功能時還不必去考慮後端引擎是否明白如何與 ioslaves 互操作這個問題。這項功能在 KDE 4 中已經部分地實現了,已可通過音頻縮略圖進行可視化操作了。很多人都可以使用任何 KIO 協議,包括 sftp:// 和 fish:// 這兩個 KDE 強人們非常喜歡的協議進行文件共享。在我的電腦上自行編譯的 fish://KIOslave 還很不穩定,不過據 #phonon IRC 上的開發者宣稱,這個功能的將很快結束編寫並投入使用,屆時它的穩定性就沒問題了。

正在開發中的 Phonon 將成為 KDE 程序的一項支柱性技術,它會使開發者的工作更輕鬆,並可避免多媒體後端的變動對各應用程序帶來繁雜工作以及不穩定性,更使得 KDE 程序對其它平台的支持變得輕而易舉。這就意味著那些開發者們可以在他們程序的其它部分花更多的時間,KDE 多媒體程序也將會變得比現在的更出色。

一些小消息:Amarok 的首席開發者 Mark Kretschmann 在本週正式開始了對 Amarok 2.0 的開發,而且他對 Phonon 對 Amarok 2.0 能起到的作用很感興趣。Amarok 開發小組還是與他們在 1.4 系列版本中做的那樣,還在開發自己的引擎。不過,就 Phonon 目前的開發狀態來說,Phonon 還是可以通過調整來滿足 Amarok 的需要的。

Phonon 開發者們的老大 Matthias Kretz 正在尋找有人可以為 Phonon 維護他們的網站,如果您想在非編程方面幫助 KDE 的話,不妨考慮一下。

原文:The Road to KDE 4: Phonon Makes Multimedia Easier
譯文:通向 KDE 4 之路(六):令多媒體技術更輕鬆的 Phonon

(Troy Unrau/文 yuanjiayj/譯)

轉載自 通向 KDE 4 之路(六):令多媒體技術更輕鬆的 Phonon
-2007/3/12-------------------------------------------------------------
已經將本篇文章的圖片轉至本Blog上了,圖片已經可正常顯示。

沒有留言:

張貼留言

請注意,在較舊的文章留言並不會馬上出現在回應區!