AVPlayer
可以播放本地,也可以播放远程的音频视频,它是基于layer显示的,需要自己编写控制面板
一个URL对应一个player,不能更改
如果想要在初始化后更改需要使用AVPlayerItem
不能全屏播放,也没有播放控制(暂停开始,全屏,播放位置,播放时间等)
// 1.获取URL(远程/本地) NSURL *url = [NSURL URLWithString:@"http://v1.mukewang.com/a45016f4-08d6-4277-abe6-bcfd5244c201/L.mp4"]; // 2.创建AVPlayerItem AVPlayerItem *item = [AVPlayerItem playerItemWithURL:url]; // 3.创建AVPlayer _player = [AVPlayer playerWithPlayerItem:item]; // 4.添加AVPlayerLayer 播放器一般为16:9 AVPlayerLayer *layer = [AVPlayerLayer playerLayerWithPlayer:self.player]; layer.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.width * 9 / 16); [self.view.layer addSublayer:layer];
MPMoviePlayerController
它是继承自UIViewController的一个控制器,可以通过设置其view的frame来显示要播放的视频,这个有播放控制,也可以全屏
通过通知中心来监听改变
// 1.获取视频的URL NSURL *url = [NSURL URLWithString:@"http://v1.mukewang.com/19954d8f-e2c2-4c0a-b8c1-a4c826b5ca8b/L.mp4"]; // 2.创建控制器 _playerController = [[MPMoviePlayerController alloc] initWithContentURL:url]; // 3.设置控制器的View的位置 _playerController.view.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.width * 9 / 16); // 4.将View添加到控制器上 [self.view addSubview:_playerController.view]; // 5.设置属性(嵌入式的) _playerController.controlStyle = MPMovieControlStyleEmbedded;
MPMoviePlayerViewController
它是继承自NSObject的,只能全屏播放,内部封装了MPMoviePlayerController
通过modal方式弹出控制器
[self presentMoviePlayerViewControllerAnimated:self.playerVc];