如何检查发声器声音是否已经在播放
How to check if Phonon sound is already playing?
我对Qt比较陌生,所以我会解释这个问题以及我希望尽可能清楚的目标。
目前,我有按钮,单击时可以播放位于应用程序目录中的声音文件。我做了一些研究,发现很多用户说使用Phonon比QSound更好。此应用程序仅适用于Windows平台,因此不需要任何特殊功能。
这是我在主窗口中的代码.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位
阅读文档,似乎就像调用music->state()
和...检查状态。
if (music->state() == Phonon::PlayingState) {
...
您还会注意到,有许多信号可以让您在应用程序中管理它,特别是 stateChanged 信号。
相关文章:
- 在提升multi_index容器中,是否定义了"default index"?
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 检查输入是否不是整数或数字
- 是否可以初始化不可复制类型的成员变量(或基类)
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 此代码是否违反一个定义规则
- 是否需要删除包含对象的"pair"?
- 是否可以从int转换为enum类类型
- 无论条件是否为true,if总是在c++中执行
- 如何找到大小'x'数组是否完全填充,在C++?
- 检查值是否在集合p1和p2中,但不在p3中
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- 检查 std::shared_ptr<> 的当前底层类型是否为 T
- C 确定是否播放声音
- 是否将资源(声音文件)添加到exe?[MS Visual Studio 2012]
- 是否可以使用Rtmidi通过音频驱动程序播放声音
- PlaySound()适用于1个声音,是否有更多的函数
- 检测声音缓冲区是否充满数据
- 如何检查发声器声音是否已经在播放