iPhone中录制的音频格式也支持和播放Android

Mon*_*mar 5 iphone android objective-c audio-recording ios

当我从iphone录制音频时如下:

//Setup the dictionary object with all the recording settings that this
            //Recording sessoin will use
            NSMutableDictionary* recordSetting = [[NSMutableDictionary alloc] init];
            [recordSetting setValue :[NSNumber numberWithInt:kAudioFormatAppleIMA4] forKey:AVFormatIDKey];
            [recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey];
            [recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey];

            //Now that we have our settings we are going to instanciate an instance of our recorder instance.
            //Generate a temp file for use by the recording.
            NSDate *now = [NSDate dateWithTimeIntervalSinceNow:0];
            NSString *caldate = [now description];

            recordedTmpFile = [[NSString stringWithFormat:@"%@/%@.caf", DOCUMENTS_FOLDER, caldate] retain];
            NSLog(@"Using File called: %@",recordedTmpFile);
            url = [NSURL fileURLWithPath:recordedTmpFile];
            error = nil;
            //Setup the recorder to use this file and record to it.
            recorder = [[ AVAudioRecorder alloc] initWithURL:url settings:recordSetting error:&error];
Run Code Online (Sandbox Code Playgroud)

但我的问题是应用程序,我正在开发的也是为Android开发,但使用iPhone和Android的通用服务器.当我将录制的音频从iPhone发布到服务器并尝试在Android中播放该音频时,它会将警报显示为不支持的文件.

我应该记录哪种格式以在iPhone和Android中播放音频?

任何人的帮助将深表感谢.

Kum*_*tra 1

它对我来说是这样的:它的 AAC 格式适用于两者,但是当音频在 Android 设备上以 AAC 格式编码时,需要将其放入 .m4a 的容器中,才能使其在 ios 上播放。更改扩展名很简单。

例如:

    On android device :   morningtune.aac

    Now Just change the extension of the song


   On ios device :   monrningtune.m4a
Run Code Online (Sandbox Code Playgroud)

首先在 Android 设备上我使用以下参数录制了音频

            recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
Run Code Online (Sandbox Code Playgroud)

现在只需将输出音频的扩展名更改为“m4a”