2016-04-20 14 views
0

snd_pcm_drain: Assertion `PCM 'fehlgeschlagen. Was könnte das Problem sein? Dies geschieht, wenn ich rufe:ALSA Programmierung

int Capture(){ 
    if(capture_handle) 
     return -1; 
    /* drop any output we might got and stop */ 
    snd_pcm_drain(capture_handle); 
    /* prepare for use */ 
    snd_pcm_prepare(capture_handle); 


    return 0; 
} 
+0

einige Code oder #define in snd_pcm_drain? – Archemar

+0

int snd_pcm_drain (snd_pcm_t * pcm) { \t assert (pcm); \t if (CHECK_SANITY (! Pcm-> setup)) { \t \t SNDMSG ("PCM nicht eingerichtet"); \t \t zurück -EIO; \t} \t zurück pcm-> fast_ops-> drain (PCM-> fast_op_arg); } – Masa

Antwort

0

Das Problem ist, dass capture_handle NULL ist. Sie können ein Gerät, das nicht vorhanden ist, nicht entleeren.

+0

Mhh bin nicht sicher darüber, weil ich versuche, die Echtzeit-Audio zu tun .. und ich habe das Handle – Masa

+0

konfiguriert Wenn Sie mir nicht glauben, legen Sie eine 'printf (" capture_handle:% p \ n ", capture_handle); 'kurz vor dem' snd_pcm_drain'-Aufruf. –

+0

ok lass mich es nochmal versuchen – Masa