2016-05-03 126 views
0

私はalsaサウンドプログラミングの新機能です。私は、オーディオをWAVファイルにC言語で記録するアプリケーションを開発しています。私はネットでいくつかの研究をしましたが、多くの話題についてまだあまり明確ではありません。助けてください。 これは私が設定している設定です。pcmキャプチャを使用してalsa

アクセス:SND_PCM_ACCESS_RW_INTERLEAVED

形式:S16_LE

率:16000

チャンネル:1

私が持っているいくつかの疑問は:

  1. 私が間に非常に困惑しています期間サイズと期間時間の設定 の相違点snd_pcm_hw_params_set_period_time_near()snd_pcm_hw_params_set_period_size_near()の違いは何ですか?どのAPIをキャプチャのために呼び出す必要がありますか?同様に、snd_pcm_hw_params_set_buffer_time_near()snd_pcm_hw_params_set_buffer_size_near()があります。これらの2つのAPIの間の決定方法

  2. 期間サイズの値の決定方法は?私は同じ値がsnd_pcm_sw_params_set_avail_min()呼び出しで使用されると信じています。

  3. で読み取るフレーム数にはどの値を使用する必要がありますか?

  4. snd_pcm_sw_params_set_avail_min()APIとsnd_pcm_start_threshold()APIの重要性は何ですか?私がarecord実装と捕獲のための別の例codeを参照していたもの

を呼び出す必要があります。

ありがとうございます。

答えて

1

期間時間は、期間サイズと同じパラメータを表します。レートがまだ分かっていないと便利かもしれません。

各期間の終了時に割り込みが発生します(データを待っているときに目を覚ます機会)。どのくらいの量のデータを読みたいのか分かっている場合は、それを期間サイズとして使用してみてください。

処理するフレーム数を読み取ります。

avail_minパラメータは、アプリケーションが実際に起動するまでに割り込みが発生するまでに使用可能なフレーム数を指定します。

開始しきい値は、その多くのフレームを読み取ろうとするとデバイスが自動的に起動するように指定します。

関連する問題