在最近对声子库进行软件更新后,我注意到我编写的媒体播放应用程序不再能够循环曲目。有问题的代码如下。第一首曲目已设置好,一旦接近完成,它将再次播放。
void Alarm::Start(bool useCustom)
{
if(useCustom)
{
media->setCurrentSource(Phonon::MediaSource(this->_CustPath));
this->_UsingCustomPath=true;
}else{
FileIO::ExtractAudio();
media->setCurrentSource(Phonon::MediaSource(this->_DefaultPath));
this->_UsingCustomPath=false;
}
media->play();
connect(media,SIGNAL(aboutToFinish()),this,SLOT(RepeatAllTheThings()));
this->_isPlaying=true;
}
void Alarm::RepeatAllTheThings()
{
if(this->_UsingCustomPath)
{
media->enqueue(this->_CustPath);
}else{
media->enqueue(this->_DefaultPath);
}
}
通过调试器运行几次后,我注意到了这条消息:
"Ignoring source as no aboutToFinish handling is in progress"
快速的谷歌搜索并没有说明这个消息。似乎已添加对私有变量(我无权访问)的检查(文件的差异)
有谁知道我是否刚刚在 phonon 中发现了一个新错误,或者我是否错误地使用了 enqueue 方法?
编辑:上面的代码只失败了大约 1/2 的时间。很迷茫。目前正在运行 phonon-gstreamer 4.6.3