我正在使用Qt SDK为Nokia E63创建一个应用程序。我可以通过实现继承QIODevice的类来实现录音功能。每次手机硬件读取新的音频样本时,它都会将它们转发到我的QIODevice
进行写入。
我的目标录制频率为16000 Hz,但设备仅支持8000 Hz和48000 Hz。我选择以48000记录,然后重新采样到16000赫兹。这种方法记录很好,除了10秒左右手机崩溃!我假设这样做的原因是我的QIODevice
中的写入功能无法跟上新样本的生成速度(48000赫兹)。 write方法无法跟上的原因是它具有重新采样的额外开销。
实现重新采样并将样本写入单独的线程帮助中的文件函数?
在录制QIODevice
的写入功能中,我只是将示例复制到缓冲区,然后让我的重新采样线程绕过缓冲区重新采样并写入文件。这种方法有用吗?
答案 0 :(得分:0)
对诺基亚的开发不太了解,但我认为诺基亚Qt SDK会有某种类型的手机模拟器。我会说首先在模拟器上测试它,以确保它不是你的代码的问题。它可能只是您代码中的错误,甚至可能是Qt中的错误。也可以在另一部手机上试一下,看看问题是否与硬件有关。