/ / android.media.AudioRecord: Kód chyby -20? - android, android-audiorecord

android.media.AudioRecord: Kód chyby -20? - android, android-audiorecord

Snažím sa písať sieťové audio aplikácie pre Android. Kód, ktorý som si predtým myslel, že pracuje, sa náhle zrúti a horí, pričom na výstupe LogCat je na výstupe uvedený nasledujúci výstup:

02-19 01:39:42.980 17178-17185/? E/zygote64: Failed sending reply to debugger: Broken pipe
02-19 01:39:43.133 17178-17178/? E/AudioRecord: AudioFlinger could not create record track, status: -1
02-19 01:39:43.133 17178-17178/? E/AudioRecord-JNI: Error creating AudioRecord instance: initialization check failed with status -1.
02-19 01:39:43.134 17178-17178/? E/android.media.AudioRecord: Error code -20 when initializing native AudioRecord object.

To je celý logcat výstup pre úroveň chyby. Dokonca aj pri podrobných informáciách nie je viac a v žiadnom prípade nedostanem nič, čo by mi ukazovalo na riadok kódu, kde sa to zrútilo.

Ani nemôžem nájsť informácie o tom, čo môže byť kód chyby AudioRecord -20. Čo presne tento kód chyby zobrazuje?

(Poznámka: Typická chyba s AudioRecord nie je dať app povolenie na záznam v manifeste. To nie je tento prípad, som len skontroloval.)

odpovede:

1 pre odpoveď č. 1

Zdá sa, že existuje mnoho možných príčin tohto problému, ale je tak strašne zdokumentované, že je ťažké povedať. V tomto prípade som sa však presťahoval z KitKat (úroveň API 19) do Oreo (úroveň API API).

Avšak, po a vrátane Marshmallow (API úroveň 23) povolenia sú udelené počas vykonávania, nie v čase inštalácie. Vyžaduje to buď:

  1. Zmena kódu, alebo
  2. Ak nepotrebujete žiadnu z pokročilých funkcií, zrušte úroveň rozhrania API na 22.

Druhé riešenie fungovalo pre mňa. To je uvedené v iných odpovediach, vrátane toto, ale celkom som nepochopil, čo hovoria. Dúfajme, že pravopis to podrobne pomôže niekomu inému.