2011-08-04 36 views
1

歌聲在Phonon音頻播放器中設置爲靜態。該循環使用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(); 
    } 

}