AudioFileWriteBytes (AudioToolbox) schlägt mit Fehlercode -38 kAudioFileNotOpenError fehl

9

Ich arbeite an der App, die Benutzer Audio aufzeichnet, schreibt Daten in die Datei mit AudioToolbox und verarbeitet diese Daten. In der Analyse sehe ich eine Menge Fehler, die in AudioToolbox-Aufnahme passieren. Fast die Hälfte von ihnen ist -38 kAudioFileNotOpenError Fehler von AudioFileWriteBytes() Call zurückgegeben.

Im Moment scheint es, als würde dies ohne Grund passieren: Der Benutzer beginnt mit der Aufnahme, alles läuft gut und dann wird der Fehler 10-80 mal nacheinander protokolliert. In der Analytik gibt es keine Benutzeraktionen wie zum Hintergrund gehen oder die Aufzeichnung pausieren (wir haben diese Funktion).

Ich habe online nach Informationen recherchiert, aber nicht viele Informationen über Fehler gefunden.

Ich poste den gesamten Aufzeichnungscode (mit entferntem unbenutzten oder analytischen Code), denn neben -38 kAudioFileNotOpenError habe ich noch eine Menge anderer Fehler und dies könnte bedeuten, dass ich AudioToolbox falsch verwende. Hier sind die häufigsten Fehler:

  1. AudioFileWriteBytes() gibt -38 kAudioFileNotOpenError error zurück: ( [1] im Code) - ~ 50% aller Fehler
  2. AudioUnitRender() gibt -10863 kAudioUnitErr_CannotDoInCurrentContext error ( [2] im Code) - ~ 5%
  3. zurück
  4. AudioFileWriteBytes() gibt 1868981823 kAudioFileDoesNotAllow64BitDataSizeError error zurück: ( [1] im Code) - ~ 4%
  5. AudioUnitRender() gibt -1 error ( [2] im Code) - ~ 3%
  6. zurück

Jede Hilfe, Kommentar oder Vorschlag wird sehr hilfreich sein!

Hier ist der Code (es ist auch auf GitHub verfügbar: Ссылка ):

%Vor%     
derpoliuk 19.01.2018, 15:33
quelle

1 Antwort

0

Ok ich hoffe, dass diese Hilfe, ich denke, dass das Problem in der Geschwindigkeit der Aufnahme vs Schreiben vs Rendering ist, so können Sie mit Blöcken schreiben, so dass Sie die Methoden isolieren kann, habe ich die gleichen Probleme mit Grafiken, so dass ich immer blockieren Sperren und Entsperren von Puffern).

Mit Blöcken arbeiten

    
Tarek.Eladly 29.01.2018 12:25
quelle