Ios 无法使用AVPlayerViewController在iPad上播放视频文件

Ios 无法使用AVPlayerViewController在iPad上播放视频文件,ios,objective-c,ipad,avkit,Ios,Objective C,Ipad,Avkit,我在这里看到了完全相同的问题,但它没有得到回答,所以再次提出同样的问题。 我尝试了各种各样的方法来播放视频,但不幸的是,它们对我不起作用。 代码如下: AVPlayerViewController *playerViewController = [[AVPlayerViewController alloc] init]; NSString *url = [[NSBundle mainBundle] pathForResource:@"Intro" ofType:@"mp4"]; _asset

我在这里看到了完全相同的问题,但它没有得到回答,所以再次提出同样的问题。 我尝试了各种各样的方法来播放视频,但不幸的是,它们对我不起作用。 代码如下:

AVPlayerViewController *playerViewController = [[AVPlayerViewController alloc] init];

NSString *url = [[NSBundle mainBundle] pathForResource:@"Intro" ofType:@"mp4"];

_asset = [AVURLAsset assetWithURL: [NSURL URLWithString:url]];
_playerItem = [AVPlayerItem playerItemWithAsset: _asset];
_player = [[AVPlayer alloc] initWithPlayerItem: _playerItem];
[playerViewController.view setFrame:_videoView.frame];

playerViewController.showsPlaybackControls = YES;

[_videoView addSubview:playerViewController.view];
playerViewController.player = _player;
[_player play];
下面是使用上述代码当前的屏幕截图。我使用了另一个苹果代码来检查视频,它工作得很好,但是苹果代码对我来说太多了,因为它对于简单的事情来说太复杂了。这是:

谢谢
AJ

我终于能够通过再次查看苹果的示例代码来解决这个问题。 解决方案: 将AAPLPlayerView文件添加到我的项目中。 然后将我在故事板中的UIView更改为上述类 然后将以下代码行更新到my view controller类中:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

}
-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    self.playerView.playerLayer.player = self.player;

    NSURL *movieURL = [[NSBundle mainBundle] URLForResource:@"Intro" withExtension:@"mp4"];
    self.asset = [AVURLAsset assetWithURL:movieURL];

    self.playerItem = [AVPlayerItem playerItemWithAsset: self.asset];
    [self.player play];
}

- (AVPlayer *)player {
    if (!_player)
        _player = [[AVPlayer alloc] init];
    return _player;
}
- (AVPlayerLayer *)playerLayer {
    return self.playerView.playerLayer;
}

- (AVPlayerItem *)playerItem {
    return _playerItem;
}
- (void)setPlayerItem:(AVPlayerItem *)newPlayerItem {
    if (_playerItem != newPlayerItem) {

        _playerItem = newPlayerItem;

        // If needed, configure player item here before associating it with a player
        // (example: adding outputs, setting text style rules, selecting media options)
        [self.player replaceCurrentItemWithPlayerItem:_playerItem];
    }
}
它成功了。 问题是PlayerLayer设置不正确,因此视频不可见