Phonon 是 KDE 桌面平台提供的多媒体 API,它是处理KDE软件中多媒体流的标准抽象,也被几个Qt应用程序使用。

Quick Facts 开发者, 当前版本 ...
Phonon
Thumb
开发者Matthias Kretz u.a.
当前版本
  • 4.12.0 (2023年11月2日;稳定版本)[1]
编辑维基数据链接
源代码库 编辑维基数据链接
编程语言C++
操作系统LinuxBSDMac OS XSolarisWindows
类型多媒体框架
许可协议LGPL
网站phonon.kde.org
Close

Phonon 最初是为了让 KDE/Qt 软件能够独立于任何单一的多媒体框架(如GStreamerxine),从而为其提供了在主要版本的生命周期内稳定的多媒体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 并提供相同的功能。

Thumb
早期的 Phonon 设定管理员截图

特色

  • Phonon让各种后端提供界面给开发者所谓的"引擎";每个引擎运作在一个具体的后端。每个后端都可让Phonon控制基本功能,如播放、暂停和搜寻。Phonon也支持更高层次的功能,如让音轨转化之间变微弱。[4]
  • 使用Solid,Phonon将给予用户更多配件的控制能力如耳机、扬声器、麦克风。一个例子是,因为你可能只有一个VoIP会话使用您的耳机,但所有其他的声音通过扬声器出来。[4]
  • 支援 Unix-like 系统下的后端GStreamer与VLC。[5]需要注意的是,xineMPlayer的后端在 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()));

参考文献

外部链接

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.