1

QTのPhononコンポーネントを使用して、C++でのユーザーインタラクション用のサウンドを再生しています。多くのテストを行った後、キューに入れられたサウンドは、メインスレッドがメインメッセージループに戻ったときにのみ再生を開始することを確認できます。長い処理コードの場合、これによりサウンドの再生に遅延が生じます。その遅延を回避する方法を見つける必要があります。

別のスレッドでサウンドを試してみましたが、フォノンに欠陥があるため、そのスレッドで一部のオブジェクトを作成できません。したがって、一部の信号は常にメインスレッドでスタックします。

いくつかの理由から、単にイベントループにすばやく戻ることはできません。

  1. 一部のオブジェクトの作成は単純に遅く、高速化できないか、スレッドで簡単に実行できません(データベース接続など)。
  2. フォノンは複数の信号を使用するため、すばやく戻っても他の信号/イベントはフォノン信号をブロック/干渉します

サウンドAPIの最も基本的な使用例を取り上げたいと思っています。ユーザーが何かをしたときにサウンドを再生し(ボタンをクリックするなど)、そのサウンドをすぐに再生します。確かにそれはフォノンで何とかカバーされなければなりませんか?

4

1 に答える 1

1

qt 4.7 のフォノンが改善されたかどうかは調べていませんが、(qt 4.6 で) 同様の目的でフォノンを使用することを検討し、2 つのサウンドを同時に再生/ミックスできないため、拒否しました。私は実行時テストさえ受けませんでした。私は SDL オーディオ、特にSD​​L ミキサーを使用しました。これは再生時のレイテンシーが低く、同時に複数のサウンドを再生できます。

于 2010-12-08T14:07:24.433 に答える