如何检查 Phonon 声音是不是已经在播放?
Posted
技术标签:
【中文标题】如何检查 Phonon 声音是不是已经在播放?【英文标题】:How to check if Phonon sound is already playing?如何检查 Phonon 声音是否已经在播放? 【发布时间】:2013-01-26 20:02:57 【问题描述】:我对 Qt 比较陌生,所以我会尽可能清楚地解释这个问题以及我希望达到的目标。
目前我有一些按钮,当点击这些按钮时,会播放位于应用程序目录中的声音文件。 我做了一些研究,发现很多用户说使用 Phonon 比 QSound 更好。此应用程序仅适用于 Windows 平台,因此无需特殊操作。
这是我在 mainwindow.cpp 中的代码:
void MainWindow::on_obj_button_gandalf_clicked()
Phonon::MediaObject *music =
Phonon::createPlayer(Phonon::MusicCategory,Phonon::MediaSource("sound_file.mp3"));
music->play();
声音播放完美。但是,如果用户必须在第一次单击时仍在播放声音时再次单击该按钮,则它会依次播放。
是否有某种 isplaying() 函数或其他东西来确定是否确实已经在播放相同的声音?如果是,则不应再次播放,如果不是,则应按要求播放歌曲。
我使用的是 Qt 4.7.0 32 位
【问题讨论】:
见qt-project.org/forums/viewthread/19097 不要为每个播放的文件创建 MediaObject。改为使用一个“玩家”,以便查询其状态 【参考方案1】:读取documentation,看起来就像调用music->state()
和...检查状态一样简单。
if (music->state() == Phonon::PlayingState)
...
您还会注意到有许多信号可以让您在应用程序中管理它,特别是stateChanged 信号。
【讨论】:
以上是关于如何检查 Phonon 声音是不是已经在播放?的主要内容,如果未能解决你的问题,请参考以下文章