Hi all, am I using the contentOverlayView correctly below? I just want to
get something showing up so that I know I'm going in the right direction so
I just want to render a red square but I do not see anything appear in the
AVPlayerViewController.view

viewDidLoad (of view controller that is presenting the
AVPlayerViewController subclass)

    self.playerViewController = [[SCRPlayerViewController alloc] init];
// SCRPlayerViewController is a subclass of AVPlayerViewController because
I wish to override default playback orientation to landscape

    UIView *contentOverlay = [[UIView alloc]
initWithFrame:CGRectMake(100.0, 100.0, 100.0, 100.0)];
    [contentOverlay setBackgroundColor:[UIColor redColor]];
    [self.playerViewController.contentOverlayView
addSubview:contentOverlay];

    // 1 ***

Later on I do this:

    AVPlayerItem *item = [[AVPlayerItem alloc] initWithAsset:asset];
    if (item != nil)
    {
        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector
(playerItemDidReachEnd:)

 name:AVPlayerItemDidPlayToEndTimeNotification
                                                   object:item];
    }

    AVQueuePlayer *p = [AVQueuePlayer queuePlayerWithItems:[NSArray
arrayWithObject:item]];
    [self.playerViewController setPlayer:p];
    p.allowsExternalPlayback = YES;
    p.usesExternalPlaybackWhileExternalScreenIsActive = YES;
    [p seekToTime:kCMTimeZero];
    [p play];

    // 2 ***

    NSLog(@"do playback self.playerViewController.contentOverlayView: %@",
self.playerViewController.contentOverlayView);

    [self presentViewController:self.playerViewController animated:YES
completion:^{
        NSLog(@"complete");
    }];


finally in playerItemDidReachEnd:


- (void)playerItemDidReachEnd:(NSNotification *)notification
{
    NSLog(@"reached the end of %@", notification);

    //3 ***
    NSLog(@"playerItemDidReachEnd
self.playerViewController.contentOverlayView: %@",
self.playerViewController.contentOverlayView);
}

~~~~~~~~

At // 1 *** and // 2 ***   self.playerViewController.contentOverlayView is
nil!

Only at // 3 *** is self.playerViewController.contentOverlayView not nil!

2015-06-19 19:29:59.252 foo[1861:956007] playerItemDidReachEnd
self.playerViewController.contentOverlayView: <UIView: 0x165474e0; frame =
(0 0; 480 320); layer = <CALayer: 0x165493b0>>

But this is too late clearly because playback has concluded. Regardless, If
I restart playback at this point without tearing-down the view controllers,
I STILL do not see a red square despite
self.playerViewController.contentOverlayView being not nil.

Documentation on contentOverlayView is rather sparse. Any suggestions?

maz
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to