フォノン ライブラリの最近のソフトウェア アップデートの後、私が作成したメディア再生アプリケーションがトラックをループできなくなっていることに気付きました。問題のコードは以下です。最初のトラックが設定され、完成に近づくと再び再生されるように設定されます。
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"
Google で簡単に検索しても、このメッセージについてはあまりわかりません。プライベート変数(アクセスできない)のチェックが追加されたようです(ファイルの差分)
フォノンで新しいバグを発見したのか、それともエンキューメソッドを間違って使用しているのか、誰かが知っていますか?
編集: 上記のコードは約 1/2 の時間しか失敗しません。非常に混乱。現在実行中の phonon-gstreamer 4.6.3