版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
音频播放与录制讲师:刘凡技术博客:新浪微博:iOS中支持的音频播放类型播放音效(SystemSoundService)播放本地音频(AVFoundataion)播放流媒体音频(AVFoundataion)iOS支持的音频格式音频格式硬件解码软件解码AACYESYESALACYESYESHE-AACYESiLBCYESIMA4YESLinea
PCMYESMP3YESYESμ-law
and
a-lawYESCAFYESYES注意:硬件解码器一次只能对一个音频文件解码关于音效的使用音效又称短音频,是一个声音文件,在应用程序中起到点缀效果,用于提升应用程序的整体用户体验通常短音效在程序中的播放时长为1~2秒,对于某些特殊动画效果的点缀音效可以略长由于音效的播放相对比较频繁,为了不影响应用程序的性能,在实际应用中通常使用非压缩的音频格式(AIFF)或者CAF音频格式,从而减低系统在音频解码上的消耗,达到省电的目的使用系统声音服务播放音效,需要导入AudioToolbox框架系统声音服务通过SystemSoundID来播放声音文件,对于同一个声音文件,可以创建多个SystemSoundID系统声音服务是一套C语言的框架为了提高应用程序性能,避免声音文件被重复加载,通常采用单例模式处理系统声音的播放加载和播放音效代码//加载音效SystemSoundIDsoundID;NSString*path=[_soundBundlepathForResource:nameofType:nil];NSURL*url=[NSURLfileURLWithPath:path];AudioServicesCreateSystemSoundID((__bridgeCFURLRef)(url),&soundID);returnsoundID;//播放音效AudioServicesPlaySystemSound(soundID);//播放音效同时振动(当用户静音时,可以通过振动提示用户注意重要操作)AudioServicesPlayAlertSound(soundID);使用AVAudioPlayer播放本地音乐使用AVAudioPlayer可以播放本地音乐,具备以下特点:能够预先缓存,提高播放的流畅性(prepareToPlay)播放起始时间(playAtTime)播放控制(play/pause/stop)循环播放次数(numberOfLoops)播放音量(volume)设置播放速度(enableRate/rate)音量监控(meteringEnabled/peakPowerForChannel/averagePowerForChannel)除上述功能外,还可以通过AVAudioPlayer的代理方法监控音乐的播放进度“流”媒体Stream网络的音频和视频MediaPlayer扬声器URL=缓冲区1缓冲区2缓冲区3之所以设置三个缓冲区,是为了解决磁盘缓存跟不上播放速度此方式会每次都从服务器重新下载播放.应用程序的实际应用场景!实例化AVAudioPlayerNSError*error=nil;AVAudioPlayer*player=[[AVAudioPlayer
alloc]initWithContentsOfURL:urlerror:&error];if(error){
NSLog(@"加载音乐播放器失败-%@",error.localizedDescription);
return
nil;}returnplayer;AVAudioPlayer播放时的音量监控应用场景:诵读类App的播放时长截取//1.加载朗诵音频_player=[SoundTool
audioPlayerWithName:@"上01一东.mp3"];_player.numberOfLoops=0;[_player
prepareToPlay];[_player
setDelegate:self];//2.允许音量测量[_player
setMeteringEnabled:YES];//3.实例化音频信息数组_soundInfo=[NSMutableArray
array];//4.启动时钟_timer=[NSTimer
scheduledTimerWithTimeInterval:0.1f
target:self
selector:@selector(timerFired:)userInfo:nil
repeats:YES];//5.开始播放[_player
play];时钟处理方法//1.更新播放器音量[_playerupdateMeters];//2.判断是否需要记录if([_playeraveragePowerForChannel:0]>-50.0){
if(_shouldRecord){NSLog(@"%f",[_playercurrentTime]);
if(![_soundInfocontainsObject:@([_playercurrentTime])]){[_soundInfoaddObject:@([_playercurrentTime])];}}_shouldRecord=NO;}else{_shouldRecord=YES;}关于AVAudioSessionAVAudioSession是一个单例,无需实例化即可直接使用。AVAudioSession在各种音频环境中起着非常重要的作用针对不同的音频应用场景,需要设置不同的音频会话分类AVAudioSession的类别(1)AVAudioSessionCategoryAmbient混音播放,例如雨声、汽车引擎等,可与其他音乐一起播放AVAudioSessionCategorySoloAmbient后台播放,其他音乐将被停止AVAudioSessionCategoryPlayback独占音乐播放AVAudioSessionCategoryRecord录制音频AVAudioSessionCategoryPlayAndRecord播放和录制音频AVAudioSessionCategoryAudioProcessing使用硬件解码器处理音频,该音频会话使用期间,不能播放或录音AVAudioSession的类别(2)类别输入输出与iPOD混合遵从静音AVAudioSessionCategoryAmbientNoYesYesYesAVAudioSessionCategorySoloAmbientNoYesNoYesAVAudioSessionCategoryPlaybackNoYesNoNoAVAudioSessionCategoryRecordYesNoNoNoAVAudioSessionCategoryPlayAndRecordYesYesNoNo后台播放音乐(1)——设置后台任务+(UIBackgroundTaskIdentifier)backgroundPlayerID:(UIBackgroundTaskIdentifier)backTaskId{
//1.设置并激活音频会话类别
AVAudioSession*session=[AVAudioSession
sharedInstance];[sessionAVAudioSessionCategoryPlayback
error:nil];[sessionsetActive:YES
error:nil];
//2.允许应用程序接收远程控制[[UIApplication
sharedApplication]beginReceivingRemoteControlEvents];
//3.设置后台任务ID
UIBackgroundTaskIdentifiernewTaskId=UIBackgroundTaskInvalid;newTaskId=[[UIApplication
sharedApplication]beginBackgroundTaskWithExpirationHandler:nil];
if(newTaskId!=UIBackgroundTaskInvalid&&backTaskId!=UIBackgroundTaskInvalid)
{[[UIApplication
sharedApplication]endBackgroundTask:backTaskId];}
returnnewTaskId;}后台播放音乐(2)——允许后台播放后台播放音乐(3)——记录后台任务代号//后台播放任务IdUIBackgroundTaskIdentifier_bgTaskId;//设置音频会话,允许后台播放_bgTaskId=[SoundToolbackgroundPlayerID:_bgTaskId];音频录音机参数字典NSMutableDictionary*setting=[[NSMutableDictionaryalloc]init];//音频格式[settingsetValue:[NSNumbernumberWithInt:kAudioFormatAppleIMA4]forKey:AVFormatIDKey];//音频采样率[settingsetValue:[NSNumbernumberWithFloat:8000.0]forKey:AVSampleRateKey];//音频通道数[set
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二年级道德与法治上册 第一单元 3《假期安全真重要》教案4 浙教版
- 八年级英语下册 Unit 1 What's the matter教案设计(pdf)(新版)人教新目标版
- 2024-2025学年新教材高中数学 第1章 空间向量与立体几何 1.4 空间向量的应用 1.4.1 第2课时 空间向量与垂直关系教案 新人教A版选择性必修第一册
- 八年级政治上册 第四单元 9.3 平等尊重你我他教案 新人教版
- 2024-2025学年高中物理 第7章 分子动理论 4 温度和温标教案1 新人教版选修3-3
- 英语 制作课件
- 租地到期收购地面上的房屋合同(2篇)
- 造船厂检修劳务派遣合同(2篇)
- 托尔斯泰课件完美
- 地震说课稿课件
- 六年级数学上册期中试卷分析总结(2篇)
- 第6课《我们神圣的国土》 (教学设计)-部编版道德与法治五年级上册
- 模拟电子技术说课
- 2024年秋新精通版(三年级起)英语三年级上册课件 Unit 5 Lesson 1
- 20S515 钢筋混凝土及砖砌排水检查井
- 2024年应急管理部所属事业单位第二次招聘考试笔试高频500题难、易错点模拟试题附带答案详解
- 2024版CSCO淋巴瘤诊疗指南解读
- 2024年陕西省中考英语试题及解析版
- GB/T 25356-2024机场道面除冰防冰液
- 18 《浏览数字博物馆》(教学设计) 五年级信息技术武汉版
- 期中测试卷(1-4单元)试题-2024-2025学年人教版数学六年级上册
评论
0/150
提交评论