Ошибка: не удалось установить формат клиента для записанного аудиофайла (-66563) - EZRecorder / EZAudio

Я работаю над приложением, которое использует EZAudio для получения аудиоданных с микрофона и отправки их по Wi-Fi, а затем записывает полученные аудиоданные на 2-м устройстве. Однако все работает отлично, когда я пытался использовать EZRecorder из их файла примера, я получаю эту ошибку: "Ошибка: не удалось установить формат клиента для записанного аудиофайла (-66563)". Я должен отметить, что оригинальный пример кода работает без проблем сам по себе, но я получаю ошибку, когда я перемещаю код в свой проект.

Любая помощь приветствуется.

Вот фрагмент кода, который вызывает это:

-(void)toggleRecording:(id)sender
{
    if (recTest==0)
    {
        [recButton setImage:[UIImage imageNamed:@"rec2.png"] forState:UIControlStateNormal];
        recTest=1;
    }
    else if (recTest==1)
    {
        [recButton setImage:[UIImage imageNamed:@"rec.png"] forState:UIControlStateNormal];
        recTest=0;
    }

    self.playingTextField.text = @"Not Playing";
    if(self.audioPlayer)
    {
        if(self.audioPlayer.playing)
        {
            [self.audioPlayer stop];
        }
        self.audioPlayer = nil;
    }

    if(recTest==1)
    {
        //Create the recorder
        self.recorder = [EZRecorder recorderWithDestinationURL:[self testFilePathURL]
                                                  sourceFormat:self.microphone.audioStreamBasicDescription
                                           destinationFileType:EZRecorderFileTypeM4A];


        self.isRecording = NO;
    }
    else
    {
        [self.recorder closeAudioFile];
        self.isRecording = YES;
    }
    self.recordingTextField.text = self.isRecording ? @"Recording" : @"Not Recording";
}

2 ответа

Убедитесь, что вы инициализировали микрофон с:

self.microphone = [EZMicrophone microphoneWithDelegate:self];

Насколько мне известно, вы должны удалить ранее записанный звук. Вот пример кода, который я использовал для удаления аудио,

  '- (void)toggleRecording:(id)sender
{
 [self.player pause];
   if(!(wil%2))
        {
      [self.recorder closeAudioFile];

      [NSThread sleepForTimeInterval:0.1];
    }

if ([sender isOn])
{
    //
    // Create the recorder
    //
    [self.recordingAudioPlot clear];
    [self.microphone startFetchingAudio];
    self.recorder = [EZRecorder recorderWithURL:[self testFilePathURL]
                                   clientFormat:[self.microphone       audioStreamBasicDescription]
                                       fileType:EZRecorderFileTypeM4A
                                       delegate:self];
    self.playButton.enabled = YES;
}
self.isRecording = (BOOL)[sender isOn];
self.recordingStateLabel.text = self.isRecording ? @"Recording" : @"Not Recording";
wil++;
}'

Надеюсь, что это может дать некоторое представление о вашей проблеме.

Другие вопросы по тегам