对不起,如果我问的是一般问题. 我们正在开发一个在移动设备上录制和播放音频的应用程序.此应用程序正在为Android和iOS开发.应用程序将使用设备麦克风录制音频并将其存储在服务器中
我们正在开发一个在移动设备上录制和播放音频的应用程序.此应用程序正在为Android和iOS开发.应用程序将使用设备麦克风录制音频并将其存储在服务器中.
用户(在Android和iOS上)可以打开应用程序并播放存储在服务器上的声音.我们使用的声音格式是AAC.在iOS中它的工作正常.我们可以录制和播放AAC文件.
但在Android(三星S3和三星Galaxy Y)上,我们无法以AAC格式录制声音.但在S3中我们可以播放AAC文件.
我的问题是,我们应选择哪种格式用于在Android中录制和播放(应支持从2.3到Jellybean)和iOS.我们应该使用MP4吗?
我们的一个解决方案是,在后端,我们可以将音频文件转换为AAC,MP4或3GP,并根据版本将支持的文件提供给手机.
Android和iOS使用相同的服务器来存储记录.保存所有记录时没有任何扩展名.当Android从服务器下载记录时,我的应用会添加“.aac”扩展名.
使用iOS时,它会添加“.m4a”扩展名.
同样的记录在两个移动平台上都表现良好.
在iOS上录制:
NSDictionary recorderSettings = [[NSDictionary alloc] initWithObjectsAndKeys: [NSNumber numberWithInt:kAudioFormatMPEG4AAC], AVFormatIDKey, [NSNumber numberWithInt:16000],AVSampleRateKey, [NSNumber numberWithInt:1],AVNumberOfChannelsKey, [NSNumber numberWithInt:16],AVLinearPCMBitDepthKey, [NSNumber numberWithBool:NO],AVLinearPCMIsBigEndianKey, [NSNumber numberWithBool:NO],AVLinearPCMIsFloatKey, nil];
对于Android:
myRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); myRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); myRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); myRecorder.setAudioSamplingRate(16000); myRecorder.setAudioChannels(1); mRecorder.setOutputFile(fileName);