C++ 使用qmultimedia低级API的Qt中的音频输出问题

C++ 使用qmultimedia低级API的Qt中的音频输出问题,c++,qt,audio,qt4,multimedia,C++,Qt,Audio,Qt4,Multimedia,我正在尝试让mpg123音频解码器在windows上与QT一起工作。如何在Qmultimedia module处于推送模式时以正确的速度播放解码的音频数据。目前,我使用简单的定时器让它播放音频,但这不是一种非常有效的方式,如果我在同一时间做任何其他事情,音频都会失真。有没有更好的方法将解码数据发送到音频输出?如果有人能给我指出任何使用Qmultimedia模块和Qaudiooutput类的好例子,那就太好了。我试图找出QT示例项目“audiooutput”,但它似乎也在使用定时器以推模式将音频发

我正在尝试让mpg123音频解码器在windows上与QT一起工作。如何在Qmultimedia module处于推送模式时以正确的速度播放解码的音频数据。目前,我使用简单的定时器让它播放音频,但这不是一种非常有效的方式,如果我在同一时间做任何其他事情,音频都会失真。有没有更好的方法将解码数据发送到音频输出?如果有人能给我指出任何使用Qmultimedia模块和Qaudiooutput类的好例子,那就太好了。我试图找出QT示例项目“audiooutput”,但它似乎也在使用定时器以推模式将音频发送到输出。。希望我没有太困惑。

我也必须弄清楚这一点,我还建议使用声子框架来实现这一点。 它在Windows上使用Windows Media Player作为主机,在Mac上使用QuickTime,在Linux上使用一些KDE设备。 所以它非常独立于平台

如果您需要更多的底层功能,那么应该研究一个名为portaudio的开源项目。它非常容易使用,您可以从代码中操纵甚至填充缓冲区。 我用它制造了一个振荡器

希望有帮助

最好的


guitarflow

您是否考虑过使用更高级别的Qt库,即声子库?这个用例简单且标准。还有新的qt多媒体(目前仅限于qt mobility)更好。