2010-11-15 116 views
4

我正在使用Qt SDK爲Nokia E63創建應用程序。我可以通過實現繼承QIODevice的類來實現音頻錄製功能。每次電話硬件讀入新的音頻樣本時,它都會將它們轉發到我的QIODevice進行書寫。諾基亞E63手機CPU瓶頸

我的目標記錄頻率是16000Hz,但設備只支持8000Hz和48000Hz。我選擇在48000記錄,然後重新採樣到16000 Hz。此方法記錄正常,除非在10秒左右之後手機崩潰!我假定這樣做的原因是我的QIODevice中的寫入功能無法跟上新樣本產生的速度(48000hz)。寫入方法無法跟上的原因是因爲它具有重新採樣的額外開銷。

將執行重新採樣和寫入樣本文件函數在一個單獨的線程幫助?

在記錄QIODevice的寫入功能中,我只是將樣本複製到緩衝區,然後讓我的重新採樣線程繞過緩衝區重新採樣並寫入文件。這種方法會起作用嗎?

+0

您是否看過諾基亞Qt SDK中提供的[頻譜演示](http://doc.qt.nokia.com/latest/demos-spectrum.html)? – david 2011-04-20 11:19:09

回答

0

對諾基亞開發不太瞭解,但我認爲諾基亞Qt SDK會有某種手機模擬器。我會先在模擬器上測試一下,以確保它不會出現代碼問題。它可能只是你代碼中的一個bug,或者甚至可能是Qt中的一個bug。也可以在不同的手機上試一下,看看問題是否與硬件相關。