iOS实时录音和播放功能-创新互联
需求:最近公司需要做一个楼宇对讲的功能:门口机(连接WIFI)拨号对室内机(对应的WIFI)的设备进行呼叫,室内机收到呼叫之后将对收到的数据进行UDP广播的转发,手机(连接对应的WIFI)收到视频流之后,实时的展示视频数据(手机可以接听,挂断,手机接听之后,室内机不展示视频,只是进行转发。)
创新互联公司公司2013年成立,是专业互联网技术服务公司,拥有项目网站建设、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元彭阳做网站,已为上家服务,为彭阳各地企业和个人服务,联系电话:13518219792简单点说就是手机客户端需要做一个类似于直播平台的软件,可以实时的展示视频,实时的播放接收到的声音数据,并且实时将手机麦克风收到的声音回传给室内机,室内机负责转发给门口机。
这篇文章介绍iOS怎么进行实时的录音和播放收到的声音数据
想要使用系统的框架实时播放声音和录音数据,就得知道音频队列服务,
在AudioToolbox框架中的音频队列服务,它完全可以做到音频播放和录制,
一个音频服务队列有三个部分组成:
1.三个缓冲器Buffers:没个缓冲器都是一个存储音频数据的临时仓库。
2.一个缓冲队列Buffer Queue:一个包含音频缓冲器的有序队列。
3.一个回调CallBack:一个自定义的队列回调函数。
具体怎么运转的还是百度吧!
我的简单理解:
对于播放:系统会自动从缓冲队列中循环取出每个缓冲器中的数据进行播放,我们需要做的就是将接收到的数据循环的放到缓冲器中,剩下的就交给系统去实现了。
对于录音: 系统会自动将录的声音放入队列中的每个缓冲器中,我们需要做的就是从回调函数中将数据转化我们自己的数据就OK了。
#pragma mark--实时播放
1. 导入系统框架AudioToolbox.framework AVFoundation.framework
2. 获取麦克风权限,在工程的Info.plist文件中加入Privacy - Microphone Usage Description 这个key 描述:App想要访问您的麦克风
3. 创建播放声音的类 EYAudio
EYAudio.h
#import@interface EYAudio : NSObject // 播放的数据流数据 - (void)playWithData:(NSData *)data; // 声音播放出现问题的时候可以重置一下 - (void)resetPlay; // 停止播放 - (void)stop; @end
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享标题:iOS实时录音和播放功能-创新互联
文章地址:http://cdiso.cn/article/hdpps.html