ios - 使用 MPMoviePlayerController 将代码更改为 AVPlayer

标签 ios objective-c

我正在参加在线类(class),他们使用 MPMoviePlayerController 使用过时的代码,我需要具体说明如何将其更改为使其正常工作。我正在制作的应用程序有一个表格 View Controller ,其中有一个包含消息的收件箱。可以发送短视频文件,当您点击有视频消息的行时,我需要播放视频文件。免费试用版即将到期,所以我需要帮助。

这是我的头文件中需要更改的内容:

@property (nonatomic, strong) MPMoviePlayerController *moviePlayer;

这是我的实现文件中的 viewDidLoad 方法中需要更改的内容:
self.moviePlayer = [[MPMoviePlayerController alloc] init];

这也是实现文件中需要改变的地方。我通过 Parse.com 通过后端获取视频,这就是 PFFile 的含义:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    PFFile *videoFile = [self.selectedMessage objectForKey:@"file"];
    NSURL *fileUrl = [NSURL URLWithString:videoFile.url];
    self.moviePlayer.contentURL = fileUrl;
    [self.moviePlayer prepareToPlay];

    [self.view addSubview:self.moviePlayer.view];
    [self.moviePlayer setFullscreen:YES animated:YES];
}

最佳答案

在头文件中:

@property(nonatomic,strong)AVPlayer *avPlayer;

在实现文件中的 viewDidLoad 方法中
self.avPlayer = [[AVPlayer alloc] init];

在实现 UITableView 方法:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

     PFFile *videoFile = [self.selectedMessage objectForKey:@"file"];

    NSURL *fileURL = [NSURL fileURLWithPath:videoFile.url];
    self.avPlayer = [AVPlayer playerWithURL:fileURL];

    AVPlayerLayer *layer = [AVPlayerLayer playerLayerWithPlayer:self.avPlayer];
    self.avPlayer.actionAtItemEnd = AVPlayerActionAtItemEndNone;
    layer.frame = CGRectMake(0, 0, width, height);
    [self.view.layer addSublayer: layer];

    [self.avPlayer play];

}

希望它会帮助你:)

关于ios - 使用 MPMoviePlayerController 将代码更改为 AVPlayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33450623/

相关文章:

ios - 在 swift 中使用 Objective-C block

ios - 更新 IOS6 中的 UITableView 背景为标准样式 View

iOS 在 didSelectItemAtIndexPath 处展开 CollectionView

ios - 以编程方式快速制作二维数组

iphone - External Accessory 读取问题

javascript - 如何在没有任何用户交互的情况下自动处理 iPhone 弹出窗口?

ios - 创建更平滑的边缘或以其他方式修复 SCNView 中框上的锯齿状边缘?

iPhone - 如何在键盘上方创建一个滚动的 UIToolbar?

ios - 如何使用 objective-C 在 TableView 中突出显示多行

iOS - iBeacon - 使用程序更改 UUID