8

我在我的应用程序中使用 AVPlayer 而不是 MPMoviePlayerController 因为我想将播放器作为子层。但是我需要像播放、暂停、搜索和全屏这样的控制。我如何在 AVPlayer 中获得该按钮?这就是我放置播放器的方式:

    AVURLAsset *avasset = [[AVURLAsset alloc] initWithURL:URL1 options:nil];

    AVPlayerItem *item = [[AVPlayerItem alloc] initWithAsset:avasset];
    player = [[[AVPlayer alloc] initWithPlayerItem:item]retain];

    playerLayer = [AVPlayerLayer playerLayerWithPlayer:player];
    CGSize size = self.view.bounds.size;
    float x = size.width/2.0-187.0;
    float y = size.height/2.0 - 125.0;

    playerLayer.frame = CGRectMake(x, y, 474, 320);
    [playerLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill];
    [self.view.layer addSublayer:playerLayer];
    [player play];
4

2 回答 2

6

您必须提供自己的按钮。

AVPlayerplaypause有直接的 API。

对于全屏……嗯……你知道你在哪里画:你只需要调整你的 UIWindow 和相应的 UIView & layer 为全尺寸。

对于搜索,您确实有类似的方法seekToTime:

于 2014-03-12T05:02:35.117 回答
6

供将来参考 iOS 8 AVKit 具有可用的 AVPlayerViewController 类,该类将包装 AVPlayer 并具有标准的 MPMoviePlayerController 类控件。

AVPlayerViewController

AVPlayerViewController * filePlayerViewController = [AVPlayerViewController alloc];
//Show the controls
filePlayerViewController.showsPlaybackControls = true;
AVPlayer * filePlayer = [AVPlayer playerWithURL:[NSURL fileURLWithPath:self.videoFile.localURL]];
filePlayerViewController.player = self.filePlayer;
于 2015-07-10T02:18:21.913 回答