2017-12-18 5 views
0

starten Audioaufzeichnung geben Fehler manchmal und unter Methode gibt FehlerAudioQueueStart kehrt Fehlercode -50

Fehler Domain = NSOSStatusErrorDomain Code = -50 "(null)" Userinfo = status = AudioQueueStart (_state.queue , NULL);

unten beschriebenen Schritte für die Aufnahme audo Gefolgt -

  1. eine neue Audio-Warteschlange Geschaffen für Audiodaten aufgezeichnet werden.

    status = AudioQueueNewInput(&_state.dataFormat, AudioInputCallback, &_state, CFRunLoopGetCurrent(), kCFRunLoopCommonModes, 0, &_state.queue);

  2. Legt eine Audio-Eigenschaftswert Warteschlange.

    status = AudioQueueSetProperty(_state.queue,kAudioQueueProperty_EnableLevelMetering,&on,sizeof(on));

  3. ein Audiowarteschlange einen Puffer zuzuweisen.

    status = AudioQueueAllocateBuffer(_state.queue, buffer_size, &_state.buffers[i]);

  4. Ordnet einen Puffer zu einer Audio-Warteschlange für die Aufnahme oder Wiedergabe.

    status = AudioQueueEnqueueBuffer (_state.queue, _state.buffers[i], 0, NULL);

  5. Added ein Zuhörer Rückruf für ein Objekt.

    status = AudioQueueAddPropertyListener(_state.queue, kAudioQueueProperty_IsRunning, recordingRunningChangedCallback, &_state);

  6. beginnt mit der Wiedergabe oder Audio-Aufnahme.

    status = AudioQueueStart(_state.queue, NULL);

Und letzten Schritte gibt Fehler mit

Fehlercode -50

Antwort

0

Wie finden here, diese AVAudioSessionErrorCodeBadParam ist.

Offenbar ist also einer der von Ihnen angegebenen Parameter ungültig oder ein Parameter fehlt.

Kann this vielleicht helfen?

Da das Einrichten von Audio in iOS ziemlich kompliziert ist, empfehle ich Ihnen, mit dem Arbeiten mit Beispielcode zu beginnen oder einem anständigen Tutorial zu folgen. Aus eigener Erfahrung kann ich sagen, dass es leicht ist, etwas zu verpassen und Fehler wie diese zu bekommen.

Viel Glück!

0

Ich hatte gerade das gleiche Problem.Aus welchem ​​Grund auch immer AudioQueueStart rufen zweimal den Trick für mich:

status = AudioQueueStart(_state.queue, NULL); 
if (status == -50) { 
    status = AudioQueueStart(_state.queue, NULL); 
}