使用 qmultimedia 低级 API 的 Qt 中的音频输出问题
我正在尝试让 mpg123 音频解码器与 Windows 上的 QT 一起使用。如何使用 Qmultimedia 模块在推送模式下以正确的速度播放解码的音频数据。目前我正在使用简单的计时器来让它播放音频,但这不是非常有效的方法,如果我同时做其他任何事情,音频都会失真。有没有更好的方法将解码后的数据发送到音频输出?如果有人能给我指出任何使用 Qmultimedia 模块和 Qaudiooutput 类的好例子,那就太好了。我试图找出 QT 示例项目“audiooutput”,但它似乎也使用计时器以推送模式将音频发送到输出。希望我不会太困惑。
I'm trying to get mpg123 audio decoder to work with QT on windows. How do i play the decoded audio data at the right speed with Qmultimedia module in push mode. Currently i'm using simple timer to get it to play audio but it's not very efficient way to do it, if I do anything else at the same time audio get all distorted. Is there any better way to send the decoded data to audio output? It would be nice if anyone could point me to any nice examples using Qmultimedia module and Qaudiooutput class. I've tried to figure out QT example project "audiooutput" but it seems that it's also using timer to send audio to output in push mode.. Hope that I'm not too confusing.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我还必须弄清楚这一点,我还建议使用 Phonon 框架来做到这一点。
它在 Windows 上使用 Windows Media Player 作为主机,在 Mac 上使用 QuickTime,在 Linux 上使用一些 KDE 东西。
所以它非常独立于平台。
如果您需要更多底层功能,您应该查看一个名为 portaudio 的开源项目。它非常易于使用,您可以通过代码操作甚至填充缓冲区。
我用它来构建一个振荡器。
希望有帮助!
最好的,
吉他流
I also had to figure that out and I would also suggest using the Phonon framework to do this.
It uses Windows Media Player as host on Windows, QuickTime on Mac and some KDE stuff on Linux.
So it's pretty platform independent.
If you need more low-level functionality, you should take a look into an open-source project called portaudio. It's very easy to use and you can manipulate or even fill buffers from code.
I used it to build an oscillator.
Hope that helps!
Best,
guitarflow