视频播放

本文对比了AVPlayer与MPMoviePlayerController在播放本地与远程音频视频的功能与特性,包括如何初始化、播放控制、全屏播放及播放位置等。详细介绍了两者的区别,帮助开发者选择合适的播放器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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];

 

转载于:https://www.cnblogs.com/sea-star3/p/5333795.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值