iOS AVAudioPlayer 、AVPlayer、AVPlayerViewController、MPMoviePlayerViewController的区别和使用

一、iOS 音频

1)AVAudioPlayer  

                在框架里面

                使用简单方便,只能播放本地音频,不支持流媒体播放,每一个audioplayer对象

                就是一段音频

2) AVPlayer  

                 1.在框架里面

                  2.iOS 4.0以后,可使用AVPlayer播放本地音频和支持流媒体播放,

                        但提供接口较少,处理音频不够灵活

                    3.播放网络音乐和网络视频最常用的,可以自己缓存网络数据,然后播放

                    4.在播放视频时必须创建一个AVPlayerLayer用来展示视频,如果播放音乐,

                        声音就不用创建这个对象。

3)系统声音  在框架里面

                    音频数据文件分为压缩和非压缩的存储类型。压缩的音频文件虽然文件体积

                    较小(相对于非压缩的),但需要耗费处理器的性能进行解压和解码。

                    如果音频文件体积较小,压缩后的音频文件,也不会节省较大的磁盘空间。

                    像这一类小型非压缩的文件可以注册成为系统声音

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

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

                    在AudioToolbox框架中的音频队列服务,是用来播放网络流媒体的

                    一个框架,它完全可以做到音频播放和录制音频队列主要处理流媒体播放,

                    提供了强大且灵活的API接口(C函数的接口),但处理起来较为复杂

二、iOS视频

1)AVPlayer

                也可以播放视频

2)AVPlayerViewController  

                   //隶属AVKit框架,iOS8.0后可用。一个封装程度高的播放框架。

                    更底层 自定义程度更高的是AVPlayer。

3)MPMoviePlayerViewController   

                   1.属于MediaPlayer框架 ,可播放本地视频和互联网上的视频文件

                   2. 不能自定义UI,只能全屏状态

                   3.自带的播放控制UI, 不需要手动添加。此控制器是视图控制器, 可以弹出, 

                        可以压栈。也可以手动调整视图大小, 添加到其他视图上。

                        iOS9.0后废弃,官方推荐使用AVPlayerViewController

    4)MPMoviePlayerController

                        1.不能自定义UI。只能将此控制器视图添加到其他视图进行展示。 

                         2.可以调节全屏和非全屏状态

                         3.此控制器不是视图控制器, 不能直接弹出。    

                        4.播放器的播放状态, 是通过通知的方式告诉外界

你可能感兴趣的:(iOS AVAudioPlayer 、AVPlayer、AVPlayerViewController、MPMoviePlayerViewController的区别和使用)