S2: RECORD_AUDIO für Termux selbst, Quelle explizit, Diagnose dreistufig
Aus dem ersten Gerätelauf: module-sles-source lädt, die Aufnahme meldet einen kräftigen Pegel (Spitze 21658) — und trotzdem ist nichts zu hören. Drei Fehler kamen dabei zusammen. 1. provision.sh vergab RECORD_AUDIO nur an com.termux.api. PulseAudio läuft aber IM Termux-Prozess und öffnet das Mikrofon von dort über OpenSL ES. Die Berechtigung muss com.termux haben; sonst lädt das Modul zwar, liefert aber nichts Brauchbares. S2 prüft den Status jetzt vorab und nennt beide Wege, ihn zu setzen. 2. parecord lief ohne -d und nahm damit die Standardquelle. Bei geladenem Sink-Modul ist das häufig dessen Monitor — der zeichnet auf, was abgespielt wird, nicht was am Mikrofon anliegt. Eine solche Aufnahme sieht technisch einwandfrei aus und enthält doch nie eine Stimme. Jetzt wird OpenSL_ES_source ausdrücklich gewählt. 3. 'Man hört nichts' hat drei mögliche Ursachen, die der Test nicht getrennt hat. Er läuft jetzt dreistufig: erst ein Testton (kommt überhaupt Ton heraus?), dann die Aufnahme, dann automatisches Gegenhören. Ohne Stufe 1 sagt ein stummes Gegenhören nichts aus. Die Auswertung misst zusätzlich die Schwankung des Pegels. Sprache hat laute Silben und Pausen dazwischen; ein gleichmäßiges Signal ist Brummen oder ein Monitor-Mitschnitt. Gegen Stille, Brummen und sprachähnliches Signal getestet. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+15
-1
@@ -214,6 +214,19 @@ done
|
||||
|
||||
# ── Berechtigungen ───────────────────────────────────────────────────────────
|
||||
kopf "Berechtigungen"
|
||||
# Termux selbst braucht RECORD_AUDIO und Speicherzugriff — nicht nur Termux:API.
|
||||
# PulseAudio läuft IM Termux-Prozess und öffnet das Mikrofon über OpenSL ES von
|
||||
# dort aus. Eine Berechtigung, die nur Termux:API hat, nützt ihm nichts: das
|
||||
# Modul lädt dann zwar, liefert aber keinen brauchbaren Ton.
|
||||
for perm in \
|
||||
android.permission.RECORD_AUDIO \
|
||||
android.permission.READ_EXTERNAL_STORAGE \
|
||||
android.permission.WRITE_EXTERNAL_STORAGE
|
||||
do
|
||||
adbs "${perm##*.} für Termux" pm grant "$TERMUX" "$perm" 2>/dev/null || true
|
||||
done
|
||||
|
||||
# Termux:API bedient Kamera, Sensoren, Standort und Taschenlampe.
|
||||
for perm in \
|
||||
android.permission.RECORD_AUDIO \
|
||||
android.permission.CAMERA \
|
||||
@@ -221,9 +234,10 @@ for perm in \
|
||||
android.permission.READ_EXTERNAL_STORAGE \
|
||||
android.permission.WRITE_EXTERNAL_STORAGE
|
||||
do
|
||||
adbs "$(basename "${perm//./\/}") für Termux:API" pm grant com.termux.api "$perm" 2>/dev/null || true
|
||||
adbs "${perm##*.} für Termux:API" pm grant com.termux.api "$perm" 2>/dev/null || true
|
||||
done
|
||||
hinweis "Fehlschläge sind normal, solange Termux:API noch nicht installiert ist."
|
||||
hinweis "Eine App, die eine Berechtigung gar nicht anmeldet, lässt sich nicht beschenken."
|
||||
|
||||
# ── Was ADB nicht kann ───────────────────────────────────────────────────────
|
||||
kopf "Von Hand zu erledigen"
|
||||
|
||||
Reference in New Issue
Block a user