2010-01-25 67 views

回答

3

在試圖與聲子這樣做的問題是,Phonon::MediaSource不公開與您可以指定音頻格式的API - 即通道的採樣率,編碼和數量的PCM數據流。通常情況下,這些信息在文件頭中編碼(對於PCM數據文件,通常爲WAV header),但由於您聲明要播放「原始音頻」,因此我假定您的含義是PCM樣本的緩衝區。

Qt的4.6引入了一個新的,較低水平,音頻的API的套件QtMultimedia模塊中。您可以使用QAudioOutput播放原始音頻流。請注意,對QtMultimedia APIs的支持還不如Phonon廣泛,但已經有Windows,Mac和Linux(支持PULSE和ALSA音頻子系統)的後端。

+0

我想這回答我的問題,謝謝。測試它需要一些時間,因爲我的平臺上沒有4.6。 – thelinuxer 2010-01-25 15:45:26

1

您可以在加載MediaObject之後使用seek()方法。

void MediaObject::seek (qint64 time) [slot]

+0

是的想到了,我想我可以停止播放,如果我處理「滴答」信號。但我不認爲如果我需要在文件中播放幾個區塊,它會變得很乾淨。 – thelinuxer 2010-01-25 15:26:06