课件第十五节课音频和视频常用处理

上传人:w****i 文档编号:104624922 上传时间:2019-10-10 格式:PDF 页数:23 大小:4.33MB
返回 下载 相关 举报
课件第十五节课音频和视频常用处理_第1页
第1页 / 共23页
课件第十五节课音频和视频常用处理_第2页
第2页 / 共23页
课件第十五节课音频和视频常用处理_第3页
第3页 / 共23页
课件第十五节课音频和视频常用处理_第4页
第4页 / 共23页
课件第十五节课音频和视频常用处理_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《课件第十五节课音频和视频常用处理》由会员分享,可在线阅读,更多相关《课件第十五节课音频和视频常用处理(23页珍藏版)》请在金锄头文库上搜索。

1、 无限互联是国内唯一一家专注于iPhone和iPad软件开发培训机构,到目前为 止为各大公司输送了一大批优秀的iOS高级软件研发人才。随着iOS6系统的发布, 我们也在当天陆续发布国内首套完整的iOS开发的视频教程,手把手教您写代码, 从入门到熟练再到精通。 高薪就业是检验一家培训机构质量的唯一标准,我们的学员高薪就业是对我们 最好的肯定,也是我们前进的最强烈的动力,我们感谢同学们的努力,感谢你们对 我们的支持!我们也将免费为你们提供最好的就业后的技术支持! 亲爱的同学们,你们的高薪就业才是我们最大的成功! 版权所有:无限互联3G学院 13年1月9日星期三 第十五课 音频与视频的常用处理 主讲

2、:陈 为 版权所有:无限互联3G学院 13年1月9日星期三 版权所有:无限互联3G学院 本节目标 使用AVAudioPlayer类播放音 频 掌握后台播放音乐 自定义后台任务 使用MPMoviePlayer播放视频 13年1月9日星期三 版权所有:无限互联3G学院 1、IOS音频播放概述 iOS系统中的音频播放方式 AVAudioPlayer、AVPlayer、系统声音、音频队列 AVAudioPlayer 使用简单方便,但只能播放本地音频,不支持流媒体播放 AVPlayer iOS4.0以后,可以使用AVPlayer播放本地音频和支持流媒体播放,但提供接口较 少,处理音频不够灵活 音频队列

3、音频队列主要处理流媒体播放,提供了强大且灵活的API接口(C函数的接口),但 处理起来也较为复杂 13年1月9日星期三 版权所有:无限互联3G学院 2、AVAUDIOPLAYER的使用 引用框架 使用AVAudioPlayer或AVPlayer需要引用AVFoundation类库 处理音频示例: NSBundle *bundle = NSBundle mainBundle; / 音频文件路径 NSString *urlString = bundle pathForResource:“第一夫人“ ofType:“mp3“; / 初始化本地的url NSURL *url = NSURL alloc

4、 initFileURLWithPath:urlString; / 初始化音频对象 AVAudioPlayer *player = AVAudioPlayer alloc initWithContentsOfURL:url error:nil; / 分配播放所需的资源,并将其加入内部播放队列 player prepareToPlay; / 播放 if (player play) NSLog(“正在播放“); 13年1月9日星期三 版权所有:无限互联3G学院 常用属性 AVAudioPlayer常用属性 1. 音量 player.volume=0.8; / 0.01.0之间 2.循环次数 pla

5、yer.numberOfLoops = 3; / 默认只播放一次 player.duration / 总时长 3.播放位置 player.currentTime = 15.0; / 以指定从任意位置开始播放 4.声道数 NSUInteger channels = player.numberOfChannels; /只读属性 5.常用方法 player play; / 播放 player stop; / 停止 player pause; / 暂停 13年1月9日星期三 版权所有:无限互联3G学院 代理方法 AVAudioPlayer代理方法 - (void)audioPlayerDidFinis

6、hPlaying:(AVAudioPlayer*)player successfully:(BOOL)flag / 播放结束时执行的动作 - (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer*)player error: (NSError *)error / 解码错误执行的动作 - (void)audioPlayerBeginInterruption:(AVAudioPlayer*)player / 处理中断的代码 - (void)audioPlayerEndInterruption:(AVAudioPlayer*)player / 处理中

7、断结束的代码 13年1月9日星期三 版权所有:无限互联3G学院 AVPLAYER的使用 AVPlayer使用示例: NSString *urlString = “ 1736524/1736524.mp3? xcode=4c984fdae3c1bad69e17a9d95288ce1e / 初始化远程url NSURL *url = NSURL URLWithString:urlString; / 初始化播放器 AVPlayer *player = AVPlayer alloc initWithURL:url; / 播放 player play; 13年1月9日星期三 版权所有:无限互联3G学院

8、3、播放系统声音 播放系统声音 音频数据文件可分为压缩和非压缩的存储类型。压缩的音频文件虽然文件体积较小 (相对于非压缩的),但需要耗费处理器的性能进行解压和解码。 如果音频文件体积较小,压缩后的音频文件,也不会节省较大的磁盘空间。像这一 类小型非压缩的文件可以注册成为系统声音 格式为:caf/wav/aiff格式,且时长小于30s 13年1月9日星期三 版权所有:无限互联3G学院 播放系统声音 注册系统播放声音示例: 系统震动 NSBundle *bundle = NSBundle mainBundle; NSString *path = bundle pathForResource:“44

9、th Street Medium“ ofType:“caf“; / 初始化本地文件url NSURL *url = NSURL fileURLWithPath:path; UInt32 soundID; / 将URL所在的音频文件注册为系统声音,soundID音频ID标示该音频 AudioServicesCreateSystemSoundID(CFURLRef)url, / 播放音频 AudioServicesPlaySystemSound(soundID); / 播放系统震动 AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); 13年1

10、月9日星期三 版权所有:无限互联3G学院 课堂练习1 课堂实例1: 播放一段音频文件 添加两个UISlider实例 分别用于控制器声音和控制进度 添加一个Label标签和一个UIButton实例 分别用于显示进度和控制音频的播放 13年1月9日星期三 版权所有:无限互联3G学院 4、后台播放任务 iOS系统的后台任务 当你的应用程序在后台时(被挂起), 在iOS系统(4.0之后)允许你做三件事:播 放音频(audio),位置信息以及voip(网络电话) 播放音频 在plist文件中添加“UIBackgroundMode”属性,值为“audio” 设置AVAudioSession模式,播放音频时

11、,通常将属性设置为 AVAudioSessionCategoryPlayback(音频播放之前设置) 示例: NSError *error; AVAudioSession *audionSession = AVAudioSession sharedInstance; audionSession setCategory:AVAudioSessionCategoryPlayback error: 13年1月9日星期三 版权所有:无限互联3G学院 其他后台任务 其他的后台任务 通过上一小节的学习,我们知道iOS系统可以支持三种标准的后台任务,需要在plist 文件设置,你的应用程序就支持对应的模式

12、除去这三种标准的后台模式,我们也可以添加自定义的后台任务。比如,视频、音 频的下载等等 但通过情况下,你的应用程序只能活跃600s 自定义后台任务示例1: 13年1月9日星期三 版权所有:无限互联3G学院 自定义后台任务 - (void)applicationDidEnterBackground:(UIApplication *)application UIApplication *application = UIApplication sharedApplication; /启动一个后台任务 bgTask = application beginBackgroundTaskWithExpira

13、tionHandler:(void) /当该任务超时回调该block块 /结束该任务 application endBackgroundTask:bgTask; bgTask = UIBackgroundTaskInvalid; ; 13年1月9日星期三 版权所有:无限互联3G学院 自定义后台任务 自定义后台任务示例2: / 程序进入后台调用 - (void)applicationDidEnterBackground:(UIApplication *)application / 开启一个后台任务,避免程序被挂起 bgTask = application beginBackgroundTaskW

14、ithExpirationHandler: application endBackgroundTask:bgTask; bgTask = UIBackgroundTaskInvalid; ; / 开启新的线程 NSOperationQueue alloc init addOperationWithBlock: / 开启定时器监听后台运行时间 NSTimer scheduledTimerWithTimeInterval:1 target:self selector:selector(timerAction) userInfo:self repeats:YES; NSRunLoop current

15、RunLoop run; ; 13年1月9日星期三 版权所有:无限互联3G学院 自定义后台任务 - (void)timerAction _count+; NSLog(“%d“,_count); /因为一个任务只能保持600秒,所以当500秒的时,新开一个新的任务 if (_count % 500 = 0) UIApplication *application = UIApplication sharedApplication; bgTask = application beginBackgroundTaskWithExpirationHandler:(void) application endBackgroundTask:bgTask; bgTask = UIBackgroundTaskInvalid; ; 13年1月9日星期三 版权所有:无限互联3G学院 5、视频播放 iOS视频播放 iOS内置了视频播放器,我们可以通过使用MPMoviePlayerController或者 MPMoviePlayerViewController类(视图控制器)来播放视频(含流媒体视频播 放),两者使用也较为简单 需引入“MediaPlayer.fram

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号