




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、iOS与Android的音频互通音频的基本知识声音是波的一种,频率和振幅是描述波的重要属性,频率的大小与我们通常所说的音高对应,而振幅影响声音的大小。频率的单位是赫兹,赫兹是电、磁、声波和机械振动周期循环时频率的单位,即每秒的周期次数(周期/秒)。对于声音,人类的听觉范围为20Hz20000Hz,低于这个范围叫做次声波,高于这个范围的叫做超声波。数码录音最关键一步就是要把模拟信号转换为数码信号,就电脑而言是把模拟声音信号录制成为音频文件。描述音频文件主要有两个指标,一个是采样频率,或称采样率、采率,另一个是采样精度也就是比特率。采样,指把时间域或空间域的连续量转化成离散量的过程。每秒钟的采样样
2、本数叫做采样频率。采样频率越高,数字化后声波就越接近于原来的波形,即声音的保真度越高,但量化后声音信息量的存储量也越大,而人的耳朵已经很难分辨。根据采样定理,只有当采样频率高于声音信号最高频率的两倍时,才能把离散模拟信号表示的声音信号唯一地还原成原来的声音。我们最常用的采样频率是44.1kHz,它的意思是每秒取样44100次。比特率是指每秒传送的比特(bit)数,单位为 bps(Bit Per Second)。比特率越高,传送数据速度越快。声音中的比特率是指将模拟声音信号转换成数字声音信号后,单位时间内的二进制数据量。比特率其实就是表示振幅,比特率越大,能够表示声音的响度越清晰。iOS音频的基
3、础接着我们要整体了解下iOS为我们提供处理音频的基础技术,核心音频(Core Audio)。Core Audio 是iOS和 MAC 的关于数字音频处理的基础,它提供应用程序用来处理音频的一组软件框架,所有关于IOS音频开发的接口都是由Core Audio来提供或者经过它提供的接口来进行封装的,按照官方的说法是集播放,音频处理录制为一体的专业技术,通过它我们的程序可以同时录制,播放一个或者多个音频流,自动适应耳机,蓝牙耳机等硬件,响应各种电话中断,静音,震动等,甚至提供3D效果的音乐播放。Core Audio有5个框架:1.Core Audio.framework,2.AudioToolbox
4、.framework,3.AudioUnit.framework ,4.AVFoundation.framework,5.OpenAL.framework。Core Audio.framework并不提供服务,仅提供其他框架可以使用的头文件和数据类型。这其中AVFoundation 框架 (AVFoundation.framework)提供一组播放、记录和管理声音和视频内容的Objective-C类,因此下面我就简单介绍一下他就可以了。AVFoundation的录音和播放音频的录制与播放主要和三个类有关AVAudioSession,AVAudioRecorder,AVAudioPlayer。A
5、VAudioSessionAVAudioSession类由AVFoundation框架引入,每个iOS应用都有一个音频会话,这个会话可以被AVAudioSession类的sharedInstance类方法访问,如下:1AVAudioSession *audioSession = AVAudioSession sharedInstance;在获得一个AVAudioSession类的实例后,你就能通过调用音频会话对象的setCategory:error:实例方法,来从IOS应用可用的不同类别中作出选择。AVAudioRecorder在使用AVAudioRecorder进行音频录制的时候,需要设置一
6、些参数,下面就是参数的说明,并且写下了音频录制的代码:1. /音频开始录制2. -(void)startRecordWithFilePath:(NSString*)path3. AVAudioSessionsharedInstancesetCategory:AVAudioSessionCategoryPlayAndRecorderror:nil;4. AVAudioSessionsharedInstancesetActive:YESerror:nil;5. /*6. *7. AVFormatIDKey音乐格式,这里采用PCM格式8. AVSampleRateKey采样率9. AVNumberO
7、fChannelsKey音乐通道数10. AVLinearPCMBitDepthKey,采样位数默认1611. AVLinearPCMIsFloatKey,采样信号是整数还是浮点数12. AVLinearPCMIsBigEndianKey,大端还是小端是内存的组织方式13. AVEncoderAudioQualityKey,音频编码质量14. 15. */16. NSDictionary*recordSetting=17. AVFormatIDKey:(kAudioFormatLinearPCM),18. AVSampleRateKey:(8000.f),19. AVNumberOfChann
8、elsKey:(1),20. AVLinearPCMBitDepthKey:(16),21. AVLinearPCMIsNonInterleaved:NO,22. AVLinearPCMIsFloatKey:NO,23. AVLinearPCMIsBigEndianKey:NO24. ;25. /初始化录音26. self.recorder=AVAudioRecorderallocinitWithURL:NSURLURLWithString:path27. settings:recordSetting28. error:nil;29. _recorder.delegate=self;30. _
9、recorder.meteringEnabled=YES;31. 32. _recorderprepareToRecord;33. _recorderrecord;34. 35. /音频停止录制36. -(void)stopRecord37. 38. 39. self.recorderstop;40. self.recorder=nil;41. 42. AVAudioPlayerAVAudioPlayer类是音频播放的类,一个AVAudioPlayer只能播放一个音频,如果你想混音你可以创建多个AVAudioPlayer实例,每个相当于混音板上的一个轨道,下面就是音频播放的方法。1. /音频开
10、始播放2. -(void)startPlayAudioFile:(NSString*)fileName3. /初始化播放器4. player=AVAudioPlayerallocinit;5. 6. player=playerinitWithContentsOfURL:NSURLURLWithString:fileNameerror:nil;7. self.player.delegate=self;8. playerplay;9. 10. /音频停止播放11. -(void)stopPlay12. if(self.player)13. self.playerstop;14. self.play
11、er.delegate=nil;15. self.player=nil;16. 17. 转码上面我们用iOS录制了一个音频文件,并且录制成了wav格式,然而现在的情况确实安卓不支持wav格式,并且苹果的格式安卓全不支持,看好是全不,不是全部,反过来安卓的格式,苹果基本也不支持。这里可以让服务器去转码,不过服务器的压力会增加,这里我们可以让客户端进行转码。amr格式的音频文件是安卓系统中默认的录音文件,也算是安卓支持的很方便的音频文件,这里就把iOS录制的wav文件转成amr,我们采用的是libopencore框架。关于libopencore,Jeans有对它进行了一个比较好的Demo,大家可以
12、参考他的Demo,iOS音频格式AMR和WAV互转(支持64位)。1. /转换amr到wav2. +(int)ConvertAmrToWav:(NSString*)aAmrPathwavSavePath:(NSString*)aSavePath3. 4. if(!DecodeAMRFileToWAVEFile(aAmrPathcStringUsingEncoding:NSASCIIStringEncoding,aSavePathcStringUsingEncoding:NSASCIIStringEncoding)5. return0;6. 7. return1;8. 9. /转换wav到amr10. +(int)ConvertWavToAmr:(NSString*)aWavPathamrSavePath:(NSS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上水泥合同范例
- 个人窗帘出售合同范例
- 厂房天窗采购合同范例
- 卖鱼定金合同范例
- 协办单位花椒合同范例
- 供货方逾期交货合同范例
- 厂房彩钢瓦出售合同范例
- 压本不押车合同范例
- 区域试销合同范例
- 南京新房顾问合同范例
- 2024年领导干部政治理论知识培训考试题库及答案(九)
- 企业行政管理的数字化趋势分析
- 推行注塑生产自动化改造计划
- GB/T 23444-2024金属及金属复合材料吊顶板
- 国家电网公司招聘高校毕业生应聘登记表
- 施工服务方案
- 湖北省麻城市集美学校初中体育《短跑技术-终点冲刺跑》教案
- 合伙健身房转让协议书范文范本
- DB11T 1835-2021 给水排水管道工程施工技术规程
- 牙科手机清洗、消毒与灭菌操作流程
- 再生障碍性贫血幻灯片
评论
0/150
提交评论