Ich benutze ALSA API snd_pcm_drop()
, um die Puffer zu löschen. Aber wenn ich später Audio mit snd_pcm_prepare()
fortsetze, kann ich einen Teil des vorherigen Audios hören, der gelöscht werden sollte. Das passiert, wenn ich einen hohen Wert von snd_pcm_sw_params_set_stop_threshold()
habe. Wenn ich einen niedrigeren Wert verwende, wird das teilweise Audio von der vorherigen Audiositzung nicht abgespielt.ALSA snd_pcm_drop() löscht nicht den kompletten Puffer
Was passiert hier? Wie lösche ich den Puffer vollständig?
(Ich bin neu in ALSA)
Dank
Ist es eine Option, snd_pcm_drain() anstelle von snd_pcm_drop() zu verwenden? –
Klingt wie ein Treiberfehler, aber das ist ohne weitere Informationen schwer zu sagen. –
@Multimedia Mike, Laut Dokumentation wird snd_pcm_drain() den Puffer nicht sofort löschen. So ist es für mich nicht nützlich. Wie auch immer ich versuchte snd_pcm_drain(), aber die Beobachtung ist gleich. –