ios - AVPlayer overrides iPad screen mirroring -
my ipad app plays video via embedded avplayerviewcontroller. when mirror app apple tv, video appears on tv , takes on full screen. embedded player shows following message: "tv connected. video playing on tv.
apple documentation silent on behavior, other claiming video should play on both devices during mirroring. , avplayer settings such 'allowsexternalplayback=no' have no effect.
how can retain app mirroring while playing embedded video avplayer?
#import <avkit/avkit.h> #import "myvc.h" #import "videoplayer.h" // video handlers @property (weak, nonatomic) iboutlet uiview *videoview; @property iboutlet avplayerviewcontroller *videovc; @end @implementation myvc - (void)viewdidload { [super viewdidload]; [self.videoview addsubview: videovc.view]; [videoplayer loadvideo:videourl invc:self.videovc]; } // video methods in custom videoplayer class #import <uikit/uikit.h> #import <avkit/avkit.h> #import <avfoundation/avfoundation.h> @interface videoplayer : nsobject @property (nonatomic) avplayer *player; @property (nonatomic) avplayerviewcontroller *videovc; +(void)loadvideo:(nsstring*)name invc:(avplayerviewcontroller*)videovc; #import "videoplayer.h" @implementation videoplayer +(void)loadvideourl: invc:(avplayerviewcontroller*)videovc; { [self playvideo:url invc:videovc]; } +(void)playvideo:(nsurl*)videofileurl invc:(avplayerviewcontroller*)videovc; { avplayeritem *playeritem = [avplayeritem playeritemwithurl:videofileurl]; avplayer *player = [avplayer playerwithplayeritem:playeritem]; [[nsnotificationcenter defaultcenter] addobserver:self selector:@selector(playeritemdidreachend:) name:avplayeritemdidplaytoendtimenotification object:[player currentitem]]; videovc.player = player; [player play]; }
Comments
Post a Comment