说明:1,服务器一般都用amr格式的录音,因为数据比较小
2.安卓手机录得是amr,苹果手机一般路程wav
3,所以为了适配不同客户端都能播放彼此的的录音,就需要转码(其实就是iOS端转码,安卓端不做操作)
4,苹果手机从服务器获取的amr需要转换成wav格式播放,苹果手机录制的wav格式录音也需要转换成amr格式上传至服务器
//改变一个新的路径_filePath
_filePath= [_playName stringByReplacingOccurrencesOfString:@"wav" withString:@"amr"];
//调用三方方法转码,将_playName(此路径是手机录音保存的)里wav语音转成amr并且保存在_filePath,将此路径的数据转换成data格式上传服务器
[VoiceConverter wavToAmr:_playName amrSavePath:_filePath];
//创建一个路径temp,用来保存amr文件 _user.phone是用户的手机号 _user.voice是一个录音连接
NSString *temp=[NSString stringWithFormat:@"%@/Documents/%@loading.amr",NSHomeDirectory(),_user.phone];
//创建一个新的路径tempPath,用来保存将amr转成wav的文件
_tempPath=[NSString stringWithFormat:@"%@/Documents/%@loading.wav",NSHomeDirectory(),_user.phone];
//将temp路径里的的amr音频写到路径tempPath里
NSData *data1=[[NSData alloc]initWithContentsOfFile:_tempPath];
if (data1==0) {//判断之前是否下载过此语音
//将服务器获取的amr连接url转成data(也就是amr音频数据)
NSData *data=[NSData dataWithContentsOfURL:[NSURL URLWithString:_user.voice]];
// 将amr音频数据写入temp
[data writeToFile:temp atomically:YES];
//调用第三方,将获取的amr格式转换成wav格式,并且保存在tempPath
[VoiceConverter amrToWav:temp wavSavePath:_tempPath];
}