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 - 一个专业级的声音服务