ios 播放安卓上传的amr文件

2023-10-14 01:20
文章标签 ios 上传 安卓 播放 amr

本文主要是介绍ios 播放安卓上传的amr文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

安卓上传的语音格式是amr,而AVAudioPlayer并不支持播放amr文件格式。

思路是把amr文件转成wav文件。

NSString *urlStr=[NSString stringWithFormat:@"%@/msp%@",ZJURL,self.shareF.shareInfo.referUris[0]];NSURL *url = [[NSURL alloc]initWithString:urlStr];NSData * audioData = [NSData dataWithContentsOfURL:url];//将数据保存到本地指定位置NSString *docDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];filePath = [NSString stringWithFormat:@"%@/%@.amr", docDirPath , self.shareF.shareInfo.idNum];wavfile=[NSString stringWithFormat:@"%@/%@.wav", docDirPath , self.shareF.shareInfo.idNum];mp3file=[NSString stringWithFormat:@"%@/%@.mp3", docDirPath , self.shareF.shareInfo.idNum];[audioData writeToFile:filePath atomically:YES];[audioData writeToFile:mp3file atomically:YES];
//        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{[VoiceConverter amrToWav:filePath wavSavePath:wavfile];
//        });

iOS上传的mp3,所以进行判断

 NSFileManager * fileManager=[ NSFileManager defaultManager ];//播放本地音乐float msize= [[fileManager attributesOfItemAtPath:wavfile error:nil] fileSize]/(1024.0*1024.0);CDLog(@"wav文件大小:%f",msize);NSURL *fileURL;if (msize>0) {CDLog(@"mav文件");fileURL=[NSURL fileURLWithPath:wavfile];}else{CDLog(@"mp3文件");fileURL=[NSURL fileURLWithPath:mp3file];}self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];[self.player play];self.player.delegate = self;

这里面需要VoiceConvert第三方库,网上找的会报错,不支持arm64,需要引入这些




这篇关于ios 播放安卓上传的amr文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/207147

相关文章

input的accept属性让文件上传安全高效

《input的accept属性让文件上传安全高效》文章介绍了HTML的input文件上传`accept`属性在文件上传校验中的重要性和优势,通过使用`accept`属性,可以减少前端JavaScrip... 目录前言那个悄悄毁掉你上传体验的“常见写法”改变一切的 html 小特性:accept真正的魔法:让

java对接Pinata上传文件到IPFS全过程

《java对接Pinata上传文件到IPFS全过程》本文详细介绍了如何使用PinataAPI将文件上传到IPFS网络,首先登录Pinata官网并生成JWT令牌,然后在项目中导入OkHttp依赖并编写代... 目录1.登录2.生成令牌3.导入依赖4.编写代码5.调用接口调试China编程代码总结Pinata调用AP

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

Python如何将OpenCV摄像头视频流通过浏览器播放

《Python如何将OpenCV摄像头视频流通过浏览器播放》:本文主要介绍Python如何将OpenCV摄像头视频流通过浏览器播放的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完... 目录方法1:使用Flask + MJPEG流实现代码使用方法优点缺点方法2:使用WebSocket传输视

GitLab文件的上传与下载方式

《GitLab文件的上传与下载方式》:本文主要介绍GitLab文件的上传与下载方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录GitLab 项目拉取到本地GitLab 项目上传方法方法 1:本地项目未初始化Git方法 2:本地项目已初始化GitGitLab 上