IOS音频和视频

96
FengxinLi
2015.07.18 11:25* 字数 689

使用AVAudioPlayer类播放音频

掌握后台播放音乐

自定义后台任务

使用MPMoviePlayer播放视频

IOS音频播放系统概述

IOS系统中得音频播放方式;

AVAudioPlayer,AVPlayer,系统声音,音频队列

AVAudioPlayer

使用简单方便,但 只能播放本地音频,不支持流媒体播放

AVPlayer

IOS4.0以后,可以使用AVPlayer播放本地音频和支持流媒体播放,但提供接口较少,处理音频不够灵活

音频队列

音频队列主要处理媒体播放,提供了强大且灵活的API接口(C函数的接口),但处理起来也较为复杂

引用框架AVAudioPlayer或者AVPlayer需要引用AVFoundation类库

处理音频示例

NSBundle *bundle=[NSBundle mainBundle];

//音频文件路径

NSString *urlString=[bundle  pathForResource:@"第一夫人" ofType:@“mp3”];

//初始化本地url

NSURL *url=[[NSURL alloc]initFileURLWithPath:urlString];

//初始化音频对象

AVAudioPlayer *player=[AVAUdioPlayer alloc]initWithContentsOfURL:url error:nil];

//分配播放所需的资源,并将其加入内部播放队列

[player prepareToPlay];

if([player play]){

NSLog(@"正在播放");

}

AVAudioPlayer常用属性

1音量

player.volume=0.8;//0.0-1.0之间

2.循环的次数

player.numberOfLoops=3;//默认只播放一次

player.duration//总时长

3播放位置

player.currentTime=15.0;//以指定从任意位置开始播放

4.声道数

NSUInteger  channels=player.numberOfChannels;//只读属性

5常用方法

[player play];

[player  stop];

[player pause];

代理方法

AVAudioPlayer代理方法

-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player  successfully:(BOOL) flag{

//播放结束时执行的动作

}

-(void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError *)error{

//解码错误执行的动作

}

-(void)audioPlayerBeginInterruption:(AVAudioPlayer *)player{

//处理中断的代码

}

-(void)audioPlayerEndInterruption:(AVAudioPlayer *)player{

//处理中断结束的代码

}




播放系统声音

注册系统播放声音示例

NSBundle *bundle=[NSBundle  mainBundle];

NSString *path=[bundle pathForResource:@"44th Street  Medium"  ofType:@"caf"];

//初始化本地文件url

NSUrl *url=[NSURL fileURLWithPath:path];

UInt32  soundID;

//将URL所在的音频文件注册为系统声音,soundID音频ID标示该音频

AUdioServicesCreateSystemSoundID((CFURLRef)url,&soundID);

//播放音频

AudioServicesPlaySystemSound(soundID);

系统震动

//播放系统震动

AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);

需要引入AudioToolbox.framework库

播放系统声音

音频数据文件可分为压缩和非压缩的存储类型。亚瑟的音频文件虽然体积较小(相对于非压缩的),但需要耗费处理器的性能进行解压和解码。

如果音频文件体积较小,压缩后的音频文件,也不会节省较大的磁盘空间。像这一类小型非压缩的文件可以注册成为系统声音

格式为:caf/wav/aiff格式,且时长小于30s

日记本
Gupao