iOS AVAudioPlayer vs. AVPlayer AVPlayerViewController vs.MPMoviePlayerViewController

来源:互联网 发布:淘宝网广场舞长裤 编辑:程序博客网 时间:2024/06/05 17:22
一、iOS 音频

1)AVAudioPlayer  在<AVFoundation/AVFoundation.h>框架里面
使用简单方便,但只能播放本地音频,不支持流媒体播放,每一个audioplayer对象就是一段音频


2) AVPlayer  也在 在<AVFoundation/AVFoundation.h>框架里面

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

AVPlayer是播放网络音乐和网络视频最常用到的,它可以自己缓存网络数据,然后播放,AVPlayer在播放视频时必须创建一个AVPlayerLayer用来展示视频,如果播放音乐,声音就不用创建这个对象。


3)系统声音  在<AudioToolbox/AudioToolbox.h>框架里面
音频数据文件可分为压缩和非压缩的存储类型。压缩的音频文件虽然文件体积较小(相对于非压缩的),但需要耗费处理器的性能进行解压和解码。如果音频文件体积较小,压缩后的音频文件,也不会节省较大的磁盘空间。像这一类小型非压缩的文件可以注册成为系统声音
格式为:caf/wav/aiff格式,且时长小于30s

4)音频队列服务(Audio Queue Services)

在AudioToolbox框架中的音频队列服务,是用来播放网络流媒体的一个框架,它完全可以做到音频播放和录制音频队列主要处理流媒体播放,提供了强大且灵活的API接口(C函数的接口),但处理起来较为复杂



二、iOS视频

1)AVPlayer也可以播放视频

2)AVPlayerViewController  //隶属AVKit框架,iOS8.0后可用。一个封装程度高的播放框架。更底层 自定义程度更高的是AVPlayer。

3)MPMoviePlayerViewController    //隶属于MediaPlayer框架 ,可以播放本地视频文件,也可以播放互联网上的视频文件。iOS9.0后废弃,官方推荐使用AVPlayerViewController

MPMoviePlayerController//不能自定义UI。只能将此控制器视图添加到其他视图进行展示。 此控制器不是视图控制器, 不能直接弹出。播放器的播放状态, 是通过通知的方式告诉外界

MPMoviePlayerViewController //不能自定义U。自带的播放控制UI, 不需要手动添加。此控制器是视图控制器, 可以弹出, 可以压栈。也可以手动调整视图大小, 添加到其他视图上

阅读全文
0 0
原创粉丝点击