iOS MPMoviePlayerController播放視頻及添加監(jiān)聽事件

iOS提供了叫做MPMoviePlayerController? MPMoviePlayerViewController兩個類,可以輕松用來實現(xiàn)視頻播放。MPMoviePlayerViewController只能全屏播放視頻

本文轉(zhuǎn)自,查看原文請戳這里


#import "MainViewController.h"#import@interface MainViewController ()

//視頻播放器

@property (strong, nonatomic) MPMoviePlayerController *player;

@property (strong, nonatomic) UIImageView *imageView;

@end

@implementation MainViewController

- (void)viewDidLoad

{

[super viewDidLoad];

//實例化視頻播放器

NSURL *url = [[NSBundle mainBundle]URLForResource:@"promo_full" withExtension:@"mp4"];

//視頻播放是流媒體的播放模式,所謂流媒體就是把視頻數(shù)據(jù)像流水一樣,變加載,變播放泼返。

//? ? //提示:如果url中包含中文,需要添加百分號姨拥。

//? ? NSString *urlString = @"http:www.xxx.com/video/xxx.mp4";

//? ? NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

self.player = [[MPMoviePlayerController alloc]initWithContentURL:url];

//1設(shè)置播放器的大小

[self.player.view setFrame:CGRectMake(0, 0, 320, 180)]; //16:9是主流媒體的樣式

//2將播放器視圖添加到根視圖

[self.view addSubview:self.player.view];

//4播放

[self.player play];

//[self.player stop];

//通過通知中心绅喉,以觀察者模式監(jiān)聽視頻播放狀態(tài)

//1 監(jiān)聽播放狀態(tài)

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(stateChange) name:MPMoviePlayerPlaybackStateDidChangeNotification object:nil];

//2 監(jiān)聽播放完成

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(finishedPlay) name:MPMoviePlayerPlaybackDidFinishNotification object:nil];

//3視頻截圖

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(caputerImage:) name:MPMoviePlayerThumbnailImageRequestDidFinishNotification object:nil];

//3視頻截圖

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(caputerImage:) name:MPMoviePlayerThumbnailImageRequestDidFinishNotification object:nil];

//4退出全屏通知

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(exitFullScreen) name:MPMoviePlayerDidExitFullscreenNotification object:nil];

//異步視頻截圖,可以在attimes指定一個或者多個時間。

[self.player requestThumbnailImagesAtTimes:@[@10.0f, @20.0f] timeOption:MPMovieTimeOptionNearestKeyFrame];

UIImageView *thumbnailImageView = [[UIImageView alloc]initWithFrame:CGRectMake(80, 200, 160, 90)];

self.imageView = thumbnailImageView;

[self.view addSubview:thumbnailImageView];

}

#pragma mark 退出全屏

- (void)exitFullScreen

{

NSLog(@"退出全屏");

}

#pragma mark -播放器事件監(jiān)聽

#pragma mark 視頻截圖 這個方法是異步方法

- (void)caputerImage:(NSNotification *)notification

{

NSLog(@"截圖 %@", notification);

UIImage *image = notification.userInfo[@"MPMoviePlayerThumbnailImageKey"];

[self.imageView setImage:image];

}

#pragma mark 播放器事件監(jiān)聽

#pragma mark 播放完成

- (void)finishedPlay

{

NSLog(@"播放完成");

}

#pragma mark 播放器視頻的監(jiān)聽

#pragma mark 播放狀態(tài)變化

/*

MPMoviePlaybackStateStopped,? //停止

MPMoviePlaybackStatePlaying,? //播放

MPMoviePlaybackStatePaused,? //暫停

MPMoviePlaybackStateInterrupted,? //中斷

MPMoviePlaybackStateSeekingForward, //快進(jìn)

MPMoviePlaybackStateSeekingBackward? //快退

*/

- (void)stateChange

{

switch (self.player.playbackState) {

case MPMoviePlaybackStatePaused:

NSLog(@"暫停");

break;

case MPMoviePlaybackStatePlaying:

//設(shè)置全屏播放

[self.player setFullscreen:YES animated:YES];

NSLog(@"播放");

break;

case MPMoviePlaybackStateStopped:

//注意:正常播放完成叫乌,是不會觸發(fā)MPMoviePlaybackStateStopped事件的柴罐。

//調(diào)用[self.player stop];方法可以觸發(fā)此事件。

NSLog(@"停止");

break;

default:

break;

}

}

@end

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末综芥,一起剝皮案震驚了整個濱河市丽蝎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌膀藐,老刑警劉巖屠阻,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異额各,居然都是意外死亡国觉,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門虾啦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來麻诀,“玉大人,你說我怎么就攤上這事傲醉∮眨” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵硬毕,是天一觀的道長呻引。 經(jīng)常有香客問我,道長吐咳,這世上最難降的妖魔是什么逻悠? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任元践,我火速辦了婚禮,結(jié)果婚禮上童谒,老公的妹妹穿的比我還像新娘单旁。我一直安慰自己,他們只是感情好饥伊,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布象浑。 她就那樣靜靜地躺著,像睡著了一般撵渡。 火紅的嫁衣襯著肌膚如雪融柬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天趋距,我揣著相機與錄音,去河邊找鬼越除。 笑死节腐,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的摘盆。 我是一名探鬼主播翼雀,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼孩擂!你這毒婦竟也來了狼渊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤类垦,失蹤者是張志新(化名)和其女友劉穎狈邑,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蚤认,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡米苹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了砰琢。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蘸嘶。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖陪汽,靈堂內(nèi)的尸體忽然破棺而出训唱,到底是詐尸還是另有隱情,我是刑警寧澤挚冤,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布况增,位于F島的核電站,受9級特大地震影響你辣,放射性物質(zhì)發(fā)生泄漏巡通。R本人自食惡果不足惜尘执,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望宴凉。 院中可真熱鬧誊锭,春花似錦、人聲如沸弥锄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽籽暇。三九已至温治,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間戒悠,已是汗流浹背熬荆。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留绸狐,地道東北人卤恳。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像寒矿,于是被迫代替她去往敵國和親突琳。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容