2011-08-04 13 views
1

フォノンオーディオプレーヤーでは、曲が静的に設定されています。ループはaboutToFinish()を使用して動作します。問題は、曲の最後に1秒の遅延があり、曲が繰り返されることです。 遅延を回避するにはどうすればよいですか?私はまた、それを再生するために、(QBufferを使用して)一時バッファに格納しています。しかし、それはループの問題の解決策を提供していません。フォノンオーディオプレーヤーのループ問題Qt

musicpath="sound/sample.mp3"; 
Phonon::AudioOutput *audioOutput; 
Phonon::VolumeSlider *volumeSlider; 

Phonon::MediaObject *mediaObject; 
mediaObject = new Phonon::MediaObject(this); 
mediaObject->setCurrentSource(Phonon::MediaSource(musicpath)); 
connect(mediaObject, SIGNAL(aboutToFinish()),mediaObject,SLOT(stop())); 
connect(mediaObject, SIGNAL(aboutToFinish()),mediaObject,SLOT(play())); 
Phonon::createPath(mediaObject, audioOutput); 
volumeSlider->setAudioOutput(audioOutput); 
mediaObject->play(); 
+0

、〜0.5s)。 'aboutToFinish()'で 'MediaObject :: enqueue()'を使ってみましたが、失敗しました。 – sschober

+0

あなたは何か解決策を見つけました..?そして、もしあなたがそれを投稿してくれたらどうですか? – Adorn

答えて

0

私は1ミリ秒で、タイマーを使用して最良の選択は、ビデオの状態をチェックしていると思うし、それを再生する場合、エンド私は遅延はいえ、少し短いです(同じ問題を抱えている

timer = new QTimer; 
QObject::connect(timer, SIGNAL(timeout()), this, SLOT(timer_overflow())); 
timer->start(1); 

void MainWindow::timer_overflow() 
{ 

    if(ui->videoPlayer->isPaused()) 
    { 
    video=Phonon::createPlayer(Phonon::VideoCategory,Phonon::MediaSource("video/back); 
    ui->videoPlayer->load(Phonon::MediaSource("video/background_video.wmv")); 
    ui->videoPlayer->play(); 
    } 

}