您好,登錄后才能下訂單哦!
文:布谷惠澤/來源:山東布谷鳥網絡
MPMoviePlayerController
用來播放視頻,在iOS9之后被棄用(iOS9之后蘋果推薦我們使用AVPlayer,AVPlayer相對復雜但靈活),由于APP往往要兼容iOS9之前的版本,所有MPMoviePlayerController還是很重要的。
在我的另一篇文章中分享了一個
基于MPMoviePlayerController
的播放器
,大家可以看看,目前還不完整。小伙伴們可以關注一下我的簡書。謝謝
MPMoviePlayerController的簡單使用 需要添加這個框架MediaPlayer.framework #import <MediaPlayer/MediaPlayer.h>
#pragma mark - 本地 NSString* _moviePath=[[NSBundle mainBundle]pathForResource:@"popeye" ofType:@"mp4"]; self.player=[[MPMoviePlayerController alloc]initWithContentURL:[NSURL fileURLWithPath:_moviePath]]; [self.view addSubview:self.player.view]; self.player.view.frame=CGRectMake(0, 0, self.view.frame.size.width, CGRectGetWidth(self.view.frame)*(9.0/16.0)); self.player.movieSourceType = MPMovieSourceTypeFile;// 播放本地視頻時需要這句 // self.player.controlStyle = MPMovieControlStyleNone;// 不需要進度條 self.player.shouldAutoplay = YES;// 是否自動播放(默認為YES) // self.player.scalingMode=MPMovieScalingModeAspectFill; [self.player prepareToPlay];//緩存 // [self.player play];//可以不加這句
#pragma mark - 網絡 NSURL* url = [NSURL URLWithString:@"https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"]; _player = [[MPMoviePlayerController alloc] initWithContentURL:url]; [self.view addSubview:self.player.view]; self.player.view.frame=CGRectMake(0, 0, self.view.frame.size.width, CGRectGetWidth(self.view.frame)*(9.0/16.0)); [self.player prepareToPlay]; [self.player play];
#pragma mark - 直播 NSURL* url = [NSURL URLWithString:@"http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8"]; _player = [[MPMoviePlayerController alloc] initWithContentURL:url]; [self.view addSubview:self.player.view]; self.player.view.frame=CGRectMake(0, 0, self.view.frame.size.width, CGRectGetWidth(self.view.frame)*(9.0/16.0)); self.player.controlStyle=MPMovieSourceTypeStreaming;//直播 [self.player prepareToPlay]; // [self.player play]; MPMoviePlayerController提供了很多通知,這里我就簡單的監聽2個。我們可以通過監聽到的信息做相應的處理。 #pragma mark - Notification //監聽視頻播放結束 [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(endPlay) name:MPMoviePlayerPlaybackDidFinishNotification object:nil]; //監聽當前視頻播放狀態 [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(loadStateDidChange:) name:MPMoviePlayerLoadStateDidChangeNotification object:nil]; #pragma mark - Notification function -(void)endPlay { NSLog(@"播放結束"); } -(void)loadStateDidChange:(NSNotification*)sender { switch (self.player.loadState) { case MPMovieLoadStatePlayable: { NSLog(@"加載完成,可以播放"); } break; case MPMovieLoadStatePlaythroughOK: { NSLog(@"緩沖完成,可以連續播放"); } break; case MPMovieLoadStateStalled: { NSLog(@"緩沖中"); } break; case MPMovieLoadStateUnknown: { NSLog(@"未知狀態"); } break; default: break; } } #pragma mark - dealloc - (void)dealloc { [[NSNotificationCenter defaultCenter]removeObserver:self]; }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。