系统视频播放器——MPMoviePlayerController 我会带着你远行 2022-03-30 04:20 198阅读 0赞 导入头文件`#import <MediaPlayer/MediaPlayer.h>` 和 `#import <AVKit/AVKit.h>` 效果图 ![在这里插入图片描述][20190104193557419.gif] 代码示例 @property (nonatomic, strong) MPMoviePlayerController *moviePlayerController; // 定义成局问变量时,黑屏无法播放,需要定义成全局变量,或属性 self.moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:videoUrl]; self.moviePlayerController.view.frame = self.view.bounds; [self.view addSubview:self.moviePlayerController.view]; [self.moviePlayerController play]; // 通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mediaPlayerPlaybackStateChange:) name:MPMoviePlayerPlaybackStateDidChangeNotification object:self.moviePlayerController]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mediaPlayerPlaybackFinished:) name:MPMoviePlayerPlaybackDidFinishNotification object:self.moviePlayerController]; // 播放状态改变,注意播放完成时的状态是暂停 - (void)mediaPlayerPlaybackStateChange:(NSNotification *)notification { switch (self.moviePlayerController.playbackState) { case MPMoviePlaybackStatePlaying: NSLog(@"正在播放..."); break; case MPMoviePlaybackStatePaused: NSLog(@"暂停播放."); break; case MPMoviePlaybackStateStopped: NSLog(@"停止播放."); break; default: NSLog(@"播放状态:%li", self.moviePlayerController.playbackState); break; } } // 播放完成 - (void)mediaPlayerPlaybackFinished:(NSNotification *)notification { NSLog(@"播放完成.%li", self.moviePlayerController.playbackState); [self.moviePlayerController.view removeFromSuperview]; } 注意:必须定义成全局变量,或属性;若定义成局部变量则黑屏不会显示。 [20190104193557419.gif]: /images/20220330/1e6cbaf0cb944e39ad7dd8f0fe03977f.png
还没有评论,来说两句吧...