经过一番折腾,终于找到了一种第三方库来转换android与iOS录音播放格式不兼容的问题。
思路:android/iOS手机录音传给服务器,参数(录音数据+手机端口类型),然后等到服务器广播数据给玩家,判断端口是android,将数据保存为为.amr格式,否则保存为.aac格式。不同手机端口调用相应端口函数。
1、设置端口录音格式:
android–>.amr
public void record(){
if (isRecording == true ) return;
recondPath = Environment.getExternalStorageDirectory().getAbsolutePath();
recondPath += "/ione1.amr"; //录音格式
File dirs = new File(recondPath);
if (dirs.exists()){
dirs.delete();
}
stopRecorder();
isRecording = true;
mRecorder = new MediaRecorder();
//设置音源为Micphone
mRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
//设置封装格式
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
//设置编码格式
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mRecorder. setAudioEncodingBitRate(8);//设置音频编码录音比特率
mRecorder.setAudioChannels(1);//设置录制的音频通道数
mRecorder.setAudioSamplingRate(8000); //设置音频采样率记录
mRecorder.setOutputFile(recondPath);
try {
mRecorder.prepare();
} catch (IOException e) {
Log.e(TAG, "prepare() failed");
}
//录音
mRecorder.start();
}
public boolean stopRecorder() {
if( mRecorder == null ) return false;
try{
mRecorder.stop();
mRecorder.reset();
mRecorder.release();
mRecorder = null;
}catch ( IllegalStateException e){
e.printStackTrace();
}
return false;
}
ios–>.aac
-(void)startAudioRecording
{
if(!isRecording)
{
[self init];
isRecording = YES;
NSLog(@"正在录音");
NSMutableDictionary *dicM=[N