当前位置 : 主页 > 手机开发 > ios >

适用于iOS和Android的音频格式

来源:互联网 收集:自由互联 发布时间:2021-06-11
对不起,如果我问的是一般问题. 我们正在开发一个在移动设备上录制和播放音频的应用程序.此应用程序正在为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);
网友评论