9

サンプルのブロックとそれに相当する時間との関係について疑問に思っています。これまでの大まかな考えを考えると:

1 秒あたりに再生されるサンプル数 = 合計ファイルサイズ / 再生時間。

たとえば、1.02MB のファイルと 12 秒 (平均) の長さのファイルがあるとすると、1 秒あたり約 89,300 サンプルが再生されることになります。これは正しいですか?

これを計算する他の方法はありますか?たとえば、byte[1024] 配列がどれくらいの時間に相当するかを知るにはどうすればよいですか?

4

2 に答える 2

20

一般的に言えば、PCM サンプルの場合、合計の長さ (バイト単位) を継続時間 (秒単位) で割ると、1 秒あたりのバイト数を取得できます (WAV ファイルの場合、ヘッダーを考慮すると多少の不正確さが生じます)。これらがサンプルにどのように変換されるかは、

  1. サンプルレート
  2. サンプルごとに使用されるビット。つまり、一般的に使用されるのは 16 ビット = 2 バイトです。
  3. チャンネル数、つまりステレオの場合は 2

2) と 3) がわかれば、1) を判断できます。

あなたの例では、89300バイト/秒で、ステレオとサンプルあたり16ビットを想定すると、89300 / 4 ~= 22Khzのサンプルレートになります

于 2011-02-16T14:09:53.950 に答える
17

@BrokenGlassの非常に良い答えに加えて、固定サンプルレート、チャネル数、サンプルあたりのビット数が固定された非圧縮オーディオの場合、計算はかなり簡単です。たとえば、「CD品質」オーディオの場合、44.1 kHzのサンプルレート、サンプルあたり16ビット、2チャネル(ステレオ)があるため、データレートは次のようになります。

  44100 * 16 * 2
= 1,411,200 bits / sec
= 176,400 bytes / sec
= 10 MB / minute (approx)
于 2011-02-16T14:17:12.220 に答える