如何在GitHub上使用此代码POVoiceHUD将.caf文件转换为.wav或.wma文件

时间:2016-08-05 13:23:22

标签: ios iphone audio github

我正在录音。我能够以.caf(核心音频格式)录制我的音频,之后我需要将其转换为.wav或.wma才能在FTP服务器上传文件。如何在iOS中将文件转换为.wav或.wma格式?使用GitHub中的POVoiceHUD代码。任何人都可以帮我解决我的问题。

2 个答案:

答案 0 :(得分:0)

如果您想将.caf转换为.wav,那么您也可以参考我在评论中提到的this SO post

但是如果您希望将音频作为.wav或.wma发送到服务器或用于任何目的,那么为什么您不能以.wav或.wma格式记录它。如果您愿意,那么您将不需要转换它。

您可以使用.wav或.wma格式录制音频,只需将extension作为.wav.wma添加到pathurl您存储视频的位置以及您在AVAudioRecorder对象中传递的内容。

例如,

 NSString *folderPath = NSTemporaryDirectory();


    NSString *soundFilePath = [folderPath
                               stringByAppendingPathComponent:[NSString stringWithFormat: @"%.0f%@", [NSDate timeIntervalSinceReferenceDate] *1000.0, @"audio.wav"]];

    NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];

    NSLog(@"Using File called: %@",soundFileURL);

    audioRecorder = [[ AVAudioRecorder alloc] initWithURL:soundFileURL settings:recordSetting error:&error];
    [audioRecorder setDelegate:self];
    [audioRecorder prepareToRecord];

更新:

我访问了POVoiceHUd

试着替换下面的行

 [self.voiceHud startForFilePath:[NSString stringWithFormat:@"%@/Documents/MySound.caf", NSHomeDirectory()]];

   [self.voiceHud startForFilePath:[NSString stringWithFormat:@"%@/Documents/MySound.wav", NSHomeDirectory()]];

我认为它会以.wav格式存储音频!

答案 1 :(得分:0)

首先,您必须在下面的行中将保存文件扩展名.caf更改为.wav

 [self.voiceHud startForFilePath:[NSString stringWithFormat:@"%@/Documents/MySound.wav", NSHomeDirectory()]];    

然后转到方法(startForFilePath :)更改语音质量的设置。

      NSDictionary *recordSettings = [NSDictionary 
                     dictionaryWithObjectsAndKeys:
                                [NSNumber numberWithInt:AVAudioQualityMin],
                                 AVEncoderAudioQualityKey,
                                 [NSNumber numberWithInt:16], 
                                 AVEncoderBitRateKey,
                                 [NSNumber numberWithInt: 2], 
                                 AVNumberOfChannelsKey,
                                 [NSNumber numberWithFloat:8000.0], AVSampleRateKey,
                                 [NSNumber numberWithInt:8], AVLinearPCMBitDepthKey,
                                 nil];