使用MPMoviePlayerController将代码更改为AVPlayer

时间:2015-10-31 10:39:14

标签: ios objective-c

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

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

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

1 个答案:

答案 0 :(得分:0)

在头文件中:

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

}

希望它会对你有所帮助:)。