Phonon入队不再工作

时间:2013-02-05 04:28:01

标签: qt phonon

最近对声子库进行了软件更新后,我注意到我编写的媒体播放应用程序不再能够循环播放曲目了。有问题的代码如下。第一首曲目已设置,一旦接近完成,它将再次播放。

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"

快速谷歌搜索并没有说明这个消息。看起来像是检查了私有变量(我无法访问)(a diff of the file

有没有人知道我是否刚刚发现了声子中的新错误,或者我是否有些错误地使用入队方法?

编辑: 上面的代码只有大约1/2的时间失败。非常困惑。目前正在运行phonon-gstreamer 4.6.3

1 个答案:

答案 0 :(得分:1)

解决了这个解决方法:

media->play();
connect(media,SIGNAL(finished()),this,SLOT(RepeatAllTheThings()));



void Alarm::RepeatAllTheThings()
{
    if(this->_UsingCustomPath)
    {
        media->setCurrentSource(Phonon::MediaSource(this->_CustPath));
    }else{
        media->setCurrentSource(Phonon::MediaSource(this->_DefaultPath));
    }
    media->play();
}