1

我正在开发一个应用程序,该应用程序使用 EZAudio 从麦克风获取音频数据以通过 wifi 发送,然后在第二台设备上记录接收到的音频数据。一切正常,但是当我尝试从他们的示例文件中使用 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";
}
4

2 回答 2

0

确保您已使用以下命令初始化麦克风:

self.microphone = [EZMicrophone microphoneWithDelegate:self];
于 2015-09-24T15:41:21.640 回答
0

据我所知,您必须删除以前录制的音频。这是我用来删除音频的示例代码,

  '- (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++;
}'

希望这可以对您的问题有所了解。

于 2016-09-29T11:50:17.847 回答