Phonon (KDE)
開發者 | Matthias Kretz u.a. |
---|---|
目前版本 | 4.10.3(2019年7月19日 | )
原始碼庫 | |
程式語言 | C++ |
作業系統 | Linux、BSD、Mac OS X、Solaris、Windows |
類型 | 多媒體框架 |
特許條款 | LGPL |
網站 | phonon.kde.org |
Phonon 是 KDE 桌面平台提供的多媒體 API,它是處理KDE軟件中多媒體流的標準抽象,也被幾個Qt應用程式使用。
Phonon 最初是為了讓 KDE/Qt 軟件能夠獨立於任何單一的多媒體框架(如GStreamer或xine),從而為其提供了在主要版本的生命周期內穩定的多媒體API。通過提供一個簡單的 KDE/Qt 風格的多媒體API,能夠更好地支援 Windows 和 macOS 上的本地多媒體框架,並解決框架變得無法維護或 API/ABI 不穩定的問題。
使用了phonon,用四行C++程式碼就能播放檔案[1] ,而舊聲音框架(aRts)則需要用到30行[2]:
media = new MediaObject(this);
connect(media, SIGNAL(finished()), SLOT(slotFinished()));
media->setCurrentSource("/home/username/music/filename.ogg");
media->play();
Phonon並非只能運行於Unix系統,他的後端可以是在其它平台如 Microsoft Windows 並提供相同的功能。
特色
- Phonon讓各種後端提供介面給開發者所謂的"引擎";每個引擎運作在一個具體的後端。每個後端都可讓Phonon控制基本功能,如播放、暫停和搜尋。Phonon也支援更高層次的功能,如讓音軌轉化之間變微弱。[3]
- 使用Solid,Phonon將給予用戶更多配件的控制能力如耳機、揚聲器、麥克風。一個例子是,因為你可能只有一個VoIP會話使用您的耳機,但所有其他的聲音通過揚聲器出來。[3]
- 支援 Unix-like 系統下的後端GStreamer與VLC。[4]需要注意的是,xine與MPlayer的後端在 Linux 中已經過時並不再提供開發。[5]
使用於 Qt
Phonon從一開始就被設計成Qt函數的風格,Qt4.4和之後版本使用了Phonon,作為跨平台的音頻/視像播放。[6]
範例
Phonon::VideoPlayer *player=new Phonon::VideoPlayer(this);
player->setMinimumSize(1280,720);
Phonon::MediaSource source("20110705_095213.avi");
player->load(source);
player->play();
connect(player,SIGNAL(finished()),player,SLOT(play()));
參考文獻
- ^ Kretz, Matthias. MediaObject Class Reference. [2007-12-19]. (原始內容存檔於2008-04-26).
- ^ Sanders, N. Phonon and the future of KDE multimedia. 2006-05-09 [2007-12-19].[永久失效連結]
- ^ 3.0 3.1 Unrau, Troy. The Road to KDE 4: Phonon Makes Multimedia Easier. 2007-02-06 [2007-12-19]. (原始內容存檔於2007-12-21).
- ^ Krotoff, Tanguy. VLC and MPlayer backends. [2009-04-02]. (原始內容存檔於2009-02-25).
- ^ Phonon - KDE UserBase Wiki. [2012-03-01]. (原始內容存檔於2012-03-15).
- ^ Phonon Overview. Qt Software. 2008 [2008-10-09]. (原始內容存檔於2008-12-10).
外部連結
- Phonon 官方網站
- 通向KDE4之路(六):令多媒體編程更輕鬆的Phonon[永久失效連結]
- PulseAudio - 一個跨平台的、可通過網絡工作的聲音服務
- JACK Audio Connection Kit - 一個專業級的聲音服務