QSoundEffect *m_pCuringAudio;
m_pCuringAudio->setSource(QUrl(QStringLiteral("qrc:/sound/systemVolume.wav")));
m_pCuringAudio->setVolume(volume);
m_pCuringAudio->setLoopCount(repeatCnt);
m_pCuringAudio->play();
已经可以正常播放音频了,需求是间隔一段时间,重复再播放这个音频。setLoopCount可以重复播放,但是没法设置重复播放的间隔时间,所以我直接m_pCuringAudio->setLoopCount(1);再在外面搞个定时器去处理它间隔多少时间再播放一次。
所以核心需求就是,我怎么知道它啥时候播放完了?我试过
bool UIBasic::qmlQueryIsPlaying()
{
returnm_pCuringAudio->isPlaying();
}
外面一个while循环一直调用,结果音频明明已经播放完了,while循环里面这个函数还给我返回true。。。。
我也试过
connect(m_pCuringAudio, SIGNAL(loopCountChanged()),this, SLOT(mySlot1()));
connect(m_pCuringAudio, SIGNAL(playingChanged()), this, SLOT(mySlot2()));
connect(m_pCuringAudio, SIGNAL(statusChanged()), this, SLOT(mySlot3()));
如果我只播放一次,以上三槽函数均只触发一次,且都是播放音频前->播放音频中这个阶段触发(为了能确认,我故意加载了一个5秒的音频看日志),但是理论上播放一次音频也应该触发两次才对啊,一次是从未播放到播放,一次是从播放到播放结束
m_pCuringAudio->setSource(QUrl(QStringLiteral("qrc:/sound/systemVolume.wav")));
m_pCuringAudio->setVolume(volume);
m_pCuringAudio->setLoopCount(repeatCnt);
m_pCuringAudio->play();
已经可以正常播放音频了,需求是间隔一段时间,重复再播放这个音频。setLoopCount可以重复播放,但是没法设置重复播放的间隔时间,所以我直接m_pCuringAudio->setLoopCount(1);再在外面搞个定时器去处理它间隔多少时间再播放一次。
所以核心需求就是,我怎么知道它啥时候播放完了?我试过
bool UIBasic::qmlQueryIsPlaying()
{
returnm_pCuringAudio->isPlaying();
}
外面一个while循环一直调用,结果音频明明已经播放完了,while循环里面这个函数还给我返回true。。。。
我也试过
connect(m_pCuringAudio, SIGNAL(loopCountChanged()),this, SLOT(mySlot1()));
connect(m_pCuringAudio, SIGNAL(playingChanged()), this, SLOT(mySlot2()));
connect(m_pCuringAudio, SIGNAL(statusChanged()), this, SLOT(mySlot3()));
如果我只播放一次,以上三槽函数均只触发一次,且都是播放音频前->播放音频中这个阶段触发(为了能确认,我故意加载了一个5秒的音频看日志),但是理论上播放一次音频也应该触发两次才对啊,一次是从未播放到播放,一次是从播放到播放结束