AVPlayer全屏

时间:2014-03-12 04:58:33

标签: ios objective-c avplayer avplayerlayer

我在我的应用程序中使用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];

2 个答案:

答案 0 :(得分:7)

您必须提供自己的按钮。

对于playpause,AVPlayer中有直接的API。

全屏......好......你知道你在哪里画画:你只需要调整你的UIWindow和相应的UIView&图层为全尺寸。

对于搜索,您确实使用seekToTime:

等方法

答案 1 :(得分: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;