IOS音频和视频

作者: FengxinLi | 来源:发表于2015-07-18 11:25 被阅读2529次

    使用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

    相关文章

      网友评论

        本文标题:IOS音频和视频

        本文链接:https://www.haomeiwen.com/subject/ikrpqttx.html