安卓与iOS录音转码,amr与wav音频格式转码

潘灵均
2023-12-01

说明: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];

        

    }









 类似资料: