MPMoviePlayerController概述

视频播放控制器(MPMoviePlayerController)可以管理播放文件或网络流中的视频。播放在播放器的view上进行,可以是全屏或行内inline的。你可以将视频播放器的view添加到你的应用中的视图结构中,或使用MPMoviePlayerViewController对象提供的界面。

重要的:MPMoviePlayerController类在iOS9就被正式废弃了。(MPMoviePlayerViewController也被正式废弃了)。在iOS9或之后播放视频时,使用AVKit框架中的AVPictureInPictureController或AVPlayerViewController类,或者WebKit中的WKWebView类。

视频播放器(iOS 4.3和之后)支持无线AirPlay播放,从iOS5开始,AirPlay播放成为默认支持的功能。要关闭AirPlay支持,设置allowsAirPlay属性为NO。在iOS 8和之后,用户可以通过控制面板访问AirPlay兼容硬件,视频播放器不再显示AirPlay控制。

当你添加一个视频播放器到你的应用的视图中,要确保正确的设置frame:注意注释

MPMoviePlayerController *player = [[MPMoviePlayerController alloc]initWithContentURL:myURL];
[player prepareToPlay];
[player.view setFrame:myView.bounds];  // player’s frame must match parent's
[myView addSubview:player.view];
//...
[player play];

要将视频播放器看成一个不透明整体,你可以在视频的顶层添加你自定义的子视图但你绝对不可以修改任何原有的子视图。

除了在视频顶层添加子视图外,你还可以通过在backgroundView属性上添加自定义子视图来自定义背景内容。自定义的子视图也支持全屏和行内两张模式,但在进入/退出全屏模式时,你需要调整你的view的位置。使用MPMoviePlayerWillEnterFullscreenNotification和MPMoviePlayerWillExitFullscreenNotification通知来获取全屏模式的转变。

这个类支持编程的方式或用户通过视频播放器上的按钮来控制播放。你可以通过使用这个类遵循的MPMediaPlayback协议中定义的方法和属性来通过代码控制播放的大部分方面。这个MPMediaPlayback协议中的属性和方法可以让你开始、停止播放,快进、快退播放内容,甚至还可以改变播放速率。另外,本类的controlStyle属性可以展示一套标准的系统控件来让用户操纵播放。你也可以为网络内容设置shouldAutoplay属性来自动播放。

当你创建一个新的MPMoviePlayerController对象时为其指定要播放的视频。当然,你也可以通过修改contentURL属性来修改当前播放的视频。修改这个属性可以让你多次重用视频播放控制器。由于性能原因,你可能需要先将视频下载到本地目录。

注意:尽管你可以在你的界面中创建多个MPMoviePlayerController对象,但同时只有一个视频播放器可以播放。

为方便对一个长视频创建书签或章节链接,MPMoviePlayerController类定义了对一个视频的指定时间点创建缩略图的方法。你可以通过thumbnailImageAtTime:timeOption:方法来请求单张缩略图或通过requestThumbnailImagesAtTimes:timeOption:方法请求多个缩略图。

要从需要访问认证的URL请求中播放网络流时,先要创建一个合适的NSURLCredential对象,通过initWithUser:password:persistence:方法,如下:

NSURLCredential *credential = [[NSURLCredential alloc]initWithUser:@“userName” password:@“password” persistence:NSURLCredentialPersistenceForSession];
self.credential = credential;
[credential release];

另外,创建一个合适的NSURLProtectionSpace对象,如下:

NSURLProtectionSpace *protectionSpace = [[NSURLProtectionSpace alloc]initWithHost:@“streams.mydomain.com” port:80 protocol:@“http” realm:@“my domain.com” authenticationMethod:NSURLAuthenticationMethodDefault];
self.protectionSpace = protectionSpace;
[protectionSpace release];

添加URL credential和protection space到单例对象NSURLCredentialStorage。如下:

[[NSURLCredentialStorage sharedCredentialStoreage]setDefaultCredential:credential forProtectionSpace:protectionSpace];

视频播放器通知

视频播放器通过发送通知来通知你的应用关于视频播放状态的信息。除了播放结束的通知,你的应用还可以接收如下情况的通知:

  • 当视频播放器开始播放、已暂停,或者快进和快退
  • 当AirPlay播放开始或结束
  • 当视频的缩放模式发生变化
  • 当视频进入或推出全屏模式
  • 当网络视频的加载状态改变
  • 当视频的元信息可用

更多信息,参考文档的Notifications小节。

支持格式

这个类可用播放iOS支持的视频或音频。包括流式内容和固定长度的文件内容。对于视频文件,就是扩展名为.mov、.mp4、.mpv和.3gp的文件或使用以下压缩标准的:

  • H.264 Baseline Profile Level 3.0 video, up to 640 x 480 at 30 fps. (The Baseline profile does not support B frames.)
  • MPEG-4 Part 2 video(Simple Profile)

如果你使用本类播放音频文件,播放时屏幕将是空白的,有一个QuickTime的logo。本类支持AAC-LA audio at up to 48 kHz, and MP3 (MPEG-1 Audio Layer 3) up to 48 kHz, stereo audio.

转载于:https://www.cnblogs.com/scfhao/p/5032115.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我可以提供一个Objective-C编写的播放视频的示例代码,它可以帮助你快速实现播放视频的功能: // 初始化播放器 AVPlayer *player = [[AVPlayer alloc] initWithURL:url]; // 设置播放器控制器 AVPlayerViewController *playerController = [[AVPlayerViewController alloc] init]; playerController.player = player; // 设置播放器的位置 playerController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); // 添加播放器 [self.view addSubview:playerController.view]; // 开始播放 [player play]; ### 回答2: Objective-C是一种广泛用于iOS和macOS应用开发的编程语言。下面是一个使用Objective-C编写的简单播放视频的案例代码: 首先,需要导入AVFoundation框架和MediaPlayer框架,以便使用相关的类和方法。 ```objective-c #import <AVFoundation/AVFoundation.h> #import <MediaPlayer/MediaPlayer.h> ``` 在视图控制器或适当的地方创建一个媒体播放器对象和一个播放视频的方法: ```objective-c - (void)playVideo { // 视频路径 NSURL *videoURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"video" ofType:@"mp4"]]; // 创建媒体播放器 AVPlayer *player = [AVPlayer playerWithURL:videoURL]; // 创建视频显示层 AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:player]; playerLayer.frame = self.view.bounds; [self.view.layer addSublayer:playerLayer]; // 播放视频 [player play]; } ``` 在上述代码中,video.mp4是存储在应用程序资源文件中的视频文件,可以根据需求更改视频文件的路径和名称。 在适当的时候调用`playVideo`方法,例如在视图加载完成时或在按钮点击事件中。 请注意,以上仅为一个简单的播放视频的案例,实际项目中可能需要更多的功能和控制,例如播放暂停、进度控制、全屏播放等功能,您可以根据实际需求进行扩展和修改。 ### 回答3: Objective-C是一种用于iOS和Mac开发的编程语言,它可以通过使用内置的媒体框架来实现视频播放。下面是一个用Objective-C编写的简单示例来演示如何播放视频。 首先,我们需要导入MediaPlayer框架来实现视频播放。在Objective-C中,可以使用以下代码导入: #import <MediaPlayer/MediaPlayer.h> 然后,在视图控制器中创建一个MPMoviePlayerController的实例来管理视频播放。这可以通过以下代码完成: MPMoviePlayerController *playerController = [[MPMoviePlayerController alloc] init]; 然后,我们需要设置视频资源的URL。这可以是一个本地文件URL或来自网络的URL。例如,如果视频文件名为“video.mp4”,并且位于应用程序的主包中,则可以使用以下代码设置URL: NSURL *videoURL = [[NSBundle mainBundle] URLForResource:@"video" withExtension:@"mp4"]; [playerController setContentURL:videoURL]; 接下来,我们需要将播放器视图添加到视图层次结构中,以便将视频显示在屏幕上。这可以通过以下代码完成: [playerController.view setFrame:self.view.bounds]; [self.view addSubview:playerController.view]; 最后,我们可以调用play方法来开始播放视频: [playerController play]; 这样,我们就完成了使用Objective-C编写一个简单的视频播放案例。当用户运行该应用程序时,它将显示播放器界面并自动开始播放视频。用户可以通过播放器界面上的控件来控制视频的暂停、调整音量等操作。 需要注意的是,这只是一个简单的示例,实际的视频播放案例可能需要更复杂的功能和逻辑。但是,上述代码足以演示Objective-C中实现视频播放的基本概念。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值