Linuxの「再生」ユーティリティには、非常に小さなファイルを処理するプロセスを停止するための「遅延」が実際にありますか?

Linuxの「再生」ユーティリティには、非常に小さなファイルを処理するプロセスを停止するための「遅延」が実際にありますか?

持続時間が00:00:00.17(1秒未満!)のwavファイルがあります。

play実行を呼び出すとplay正常に実行されますが、再生プロセスが完了するまで、端末は約4秒間アイドル状態になります。

これは意図的に設計されていますか?サウンドを再生して1秒以内に完了することは可能ですか?

編集するtime提案どおりに実行@jsbillings:

 File Size: 1.89k     Bit Rate: 90.3k
  Encoding: Unsigned PCM  
  Channels: 1 @ 8-bit    
Samplerate: 11025Hz      
Replaygain: off         
  Duration: 00:00:00.17  

In:100%  00:00:00.17 [00:00:00.00] Out:1.85k [!=====|=====!]        Clip:0    
Done.

real    0m2.912s
user    0m0.004s
sys         0m0.008s

ベストアンサー1

私はこれが通常のサウンドシステムの待ち時間(主にバッファリング)であり、プログラムフロー(バッファ、同期I / O、ポーリング)のアーティファクトだと思います。再生されるリングバッファは、おそらく00:00:00.17秒間しか持続しない悪いサンプルよりはるかに大きいでしょう。

この遅延はサンプル期間に比例しますか?つまり、サンプルが長いほど遅延は小さくなりますか?この遅延を減らすために、より大きなサンプル(1〜2秒など)を使用したいと思います。

サウンドは非常にトリッキーである可能性があり、特に詳細に近づくとさらによくなります。上記のものが(長いサンプルサイズに関して)真であれば、使用しているサウンドサブシステムに関係なく、これが正常であると言いたいと思います。

私自身は、遅延時間の短い項目(ゲームの合計など)にパルスオーディオを使用しますが、説明する問題は実際には低遅延に関連するのではなく、ハードウェアがバッファ全体を再生するタイミングを知らせるのを待つソフトウェアの問題です。含まれているサンプルよりも大きい。

私が間違った部分がある場合はご指摘ください。ありがとうございます:)

おすすめ記事