1

私が使用しているアプリケーションは、十分なサウンドが生成された後にのみサウンドを再生します。マウスを無音で 10 回クリックすると、10 回クリックした後、マウスのクリック音が 10 回聞こえます (たとえば)。

この問題を軽減するために私が見つけた唯一の方法は、非常に短いバッファ サイズを設定することですが、これはやりたくありません。

start_threshold sw パラメータを使用しようとしましたが、効果がありません。

指定された量のデータが書き込まれ、バッファ サイズを下回ったときに、強制的に再生できるように思えますが、これは正しいですか? 期間の長さはバッファよりもはるかに短い可能性があるため(または例で見たように)、それが start_threshold が示しているようです。

私のコードは次のようなものです:

コール HW パラメータ設定

データを含むバイト配列を取得する

ループスルーし、毎回バッファに 1 バイト オフセットを加えた値に書き込みます

開始を呼び出します (これにより、再生が強制されますよね??)

-EPIPE がある場合は、prepare を呼び出して、offset に 0 を追加します (再生されるのはこれだけだと思います)。

ありがとう!

4

0 に答える 0