Phonon (KDE)

  • 4.12.0 (2023年11月2日;穩定版本)[1]
編輯維基數據鏈接源代码库
  • github.com/KDE/phonon
編輯維基數據鏈接编程语言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++程式碼就能播放檔案[2] ,而舊聲音框架(aRts英语aRts)則需要用到30行[3]

 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控制基本功能,如播放、暫停和搜尋。Phonon也支持更高層次的功能,如讓音軌轉化之間變微弱。[4]
  • 使用Solid,Phonon將給予用戶更多配件的控制能力如耳機、揚聲器、麥克風。一個例子是,因為你可能只有一個VoIP會話使用您的耳機,但所有其他的聲音通過揚聲器出來。[4]
  • 支援 Unix-like 系統下的後端GStreamer与VLC。[5]需要注意的是,xine与MPlayer的后端在 Linux 中已经过时并不再提供开发。[6]

使用於 Qt

Phonon从一开始就被设计成Qt函数的风格,Qt4.4和之後版本使用了Phonon,作為跨平台的音訊/視訊播放。[7]

示例

    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()));

參考文獻

  1. ^ v4.12.0. 2023年11月2日 [2023年11月14日]. 
  2. ^ Kretz, Matthias. MediaObject Class Reference. [2007-12-19]. (原始内容存档于2008-04-26). 
  3. ^ Sanders, N. Phonon and the future of KDE multimedia. 2006-05-09 [2007-12-19]. [永久失效連結]
  4. ^ 4.0 4.1 Unrau, Troy. The Road to KDE 4: Phonon Makes Multimedia Easier. 2007-02-06 [2007-12-19]. (原始内容存档于2007-12-21). 
  5. ^ Krotoff, Tanguy. VLC and MPlayer backends. [2009-04-02]. (原始内容存档于2009-02-25). 
  6. ^ Phonon - KDE UserBase Wiki. [2012-03-01]. (原始内容存档于2012-03-15). 
  7. ^ Phonon Overview. Qt Software. 2008 [2008-10-09]. (原始内容存档于2008-12-10). 

外部連結

  • Phonon 官方網站
  • 通向KDE4之路(六):令多媒体编程更轻松的Phonon[永久失效連結]
  • PulseAudio - 一个跨平台的、可通过网络工作的声音服务
  • JACK Audio Connection Kit - 一个专业级的声音服务
軟體集
KDE核心
应用程序
程式開發
Cervisia英语Cervisia · KDbg · KDESvn · KDevelop · KImageMapEditor英语KImageMapEditor · Kompare · Kommander · Lokalize · Quanta Plus英语Quanta Plus · Umbrello
教育
Cantor英语Cantor · Kalzium · KBibTeX英语KBibTeX · KGeography英语KGeography · KHangMan英语KHangMan · Kig · Kiten · KmPlot · kst英语kst · KStars · KTouch · KTurtle · LabPlot英语LabPlot · RKWard · Step
遊戲
KAtomic · KBounce · Kolf英语Kolf · KMines · KTeaTime · KWeather
圖形
digiKam · Gwenview · Karbon14 · KColorEdit · KolourPaint · KPhotoAlbum英语KPhotoAlbum · KPovModeler · KRuler · Krita · KSnapshot · KuickShow · Okular · Skanlite英语Skanlite
網際網路
Akregator · Blogilo · ChoqoK · KGet · KFTPGrabber · KMail · KMess · KMLDonkey英语KMLDonkey · KNetAttach · KNode · Konqueror · Konversation · Kopete · KPPP · KRDC · KTorrent · Rekonq
多媒體
神龍播放器 · Frescobaldi英语Frescobaldi · JuK · K3b · K9Copy · Kaffeine · Kdenlive · KMid · KMix · KMPlayer
辦公軟體
Flow英语Calligra Flow · KAddressBook · Kexi · Kile · KMyMoney · Kalendar · Kontact · KOrganizer · KPilot英语KPilot · KWord · Plan · Stage · Skrooge · Tables · Tellico英语Tellico · Words
系統
Apper · Dolphin · KDE Partition Manager · KDE System Guard英语KDE System Guard · KDiskFree · KDE信息中心 · Konsole · Yakuake
實用工具
Ark · BasKet · Filelight英语Filelight · Kate · KCalc · KCharSelect · KGpg · KJots · Klipper · KNotes · Krusader英语Krusader · KRename · KWrite · RSIBreak · SuperKaramba英语SuperKaramba
第三方
应用程序
平臺
Akonadi · Decibel · Flake · KConfig XT · KJS · KDOM · KHTML · KIO · Kiosk · KIPI · KParts · Kross · KSVG · NEPOMUK · Oxygen · Phonon · Solid · Sonnet · Soprano · Strigi · ThreadWeaver · XMLGUI · KDE Frameworks 5
Freedesktop.org(共享)
工作空間
KDM · KWin · Plasma · 系统设置 · KDE Plasma 5
模块
社区
人物
分类 分類• 项目页面 專案英语Wikipedia:WikiProject KDE文件 Commons • 模板 模板
技術
  • 元物件系統英语Meta-object System
  • Phonon
  • QML
  • QtScript
  • Qt Quick英语Qt Quick
  • 訊號與槽英语Signals and slots
工具
綁定
相關