誰かがどのようにsnd_pcm_writeiを説明できますか
snd_pcm_sframes_t snd_pcm_writei(snd_pcm_t *pcm, const void *buffer,
snd_pcm_uframes_t size)
動作しますか?
私はそれをそのように使用しました:
for (int i = 0; i < 1; i++) {
f = snd_pcm_writei(handle, buffer, frames);
...
}
http://pastebin.com/m2f28b578の完全なソースコード
これは、snd_pcm_writei()
のすべてのフレームの数を指定するのでbuffer
はなく、
sample_rate*レイテンシー=frames
?
したがって、たとえば次の場合:sample_rate=44100レイテンシ=0.5[s] all_frames = 100000
私が与えるべきフレームの数snd_pcm_writei()
は
sample_rate*レイテンシ=フレーム44100*0.5 = 22050
そして、forループの反復回数は次のようになりますか?:
(int)100000/22050 = 4; フレーム付き=22050
と1つ余分ですが、
100000 mod 22050 = 11800
フレーム?
それはどのように機能しますか?
ルイーズ
http://www.alsa-project.org/alsa-doc/alsa-lib/group___p_c_m.html#gf13067c0ebde29118ca05af76e5b17a9