gpt4 book ai didi

c++ - 使用 QT Phonon 立即播放声音(不等待事件循环)

转载 作者:太空宇宙 更新时间:2023-11-04 12:22:11 24 4
gpt4 key购买 nike

我正在使用 QT 的 Phonon 组件在 C++ 中为用户交互播放声音。经过大量测试后,我可以确认排队的声音只会在主线程返回到主消息循环时才开始播放。对于长处理代码,这会导致声音播放延迟。我需要找到一种方法来避免这种延迟。

我试过在单独的线程中制作声音,但是 defect in Phonon 阻止在该线程中创建某些对象。因此有些信号总是卡在主线程中。

简单地快速返回到事件循环不是一种选择,原因如下:

  1. 有些对象的创建速度很慢,无法在线程中加速或轻松完成(例如数据库连接)
  2. 声子使用多个信号,因此即使您快速返回,其他信号/事件仍然会阻止/干扰声子信号

我只是想介绍声音 API 的最基本用例:当用户执行某些操作(例如单击按钮)时播放声音并立即播放该声音。当然,这必须以某种方式在 Phonon 中涵盖?

最佳答案

我没有查看 qt 4.7 中的声子是否得到了改进,但我考虑过将它用于类似的目的(在 qt 4.6 中)并拒绝了它,因为它无法同时播放/混合两种声音。我什至没有进行任何运行时测试。我选择了 SDL Audio,特别是 SDL Mixer它的播放延迟很低,您可以同时播放多个声音。

关于c++ - 使用 QT Phonon 立即播放声音(不等待事件循环),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4388026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com