iphone播放視頻

來源:互聯網
上載者:User

首先建一個基於視圖的的項目命名為PlayVideo,並給項目中的Frameworks添加MediaPlayer.framework,:




加進去了以後,再給檔案裡添加一個視頻檔案video.m4v,注意副檔名,我先開始添加的視頻檔案的副檔名為mp4,結果一直播放的時候就是不播,所以我把視頻轉換成m4v副檔名就行了!

接下來是在PlayViewContrller.h檔案中添加屬性:

MPMoviePlayerController *player;//控制視頻播放

然後是PlayViewController.m檔案中添加代碼實現:

[cpp] - (void)viewDidLoad 

    //擷取視頻檔案的名稱  
    NSString *url=[[NSBundle mainBundle]pathForResource:@"video" ofType:@"m4v"]; 
    //初始化player,檔案是video.m4v  
    player = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:url]]; 
    //然後,您使用的NSNotificationCenter類註冊通知,這樣當影片完成播放(即結束)的時候調用movieFinishedCallback:方法;  
    [[NSNotificationCenter defaultCenter] 
     addObserver:self selector:@selector(movieFinishedCallback:) 
     name:MPMoviePlayerPlaybackDidFinishNotification object:player]; 
    //設定視頻視圖的大小  
    player.view.frame = CGRectMake(10, 10, 300, 300);  
    //添加控制項  
    [self.view addSubview:player.view]; 
    //播放影片  
    [player play]; 
    [super viewDidLoad]; 

//電影停止播放時,你應該登出的通知,刪除的影片,然後釋放播放對象:  
-(void)movieFinishedCallback:(NSNotification*) aNotification { 
    MPMoviePlayerController *moviePlayer = [aNotification object]; 
    //登出通知  
    [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer]; 
    //刪除影片  
    [moviePlayer.view removeFromSuperview]; 
    //釋放  
    [player release]; 

- (void)viewDidLoad
{
    //擷取視頻檔案的名稱
    NSString *url=[[NSBundle mainBundle]pathForResource:@"video" ofType:@"m4v"];
    //初始化player,檔案是video.m4v
    player = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:url]];
    //然後,您使用的NSNotificationCenter類註冊通知,這樣當影片完成播放(即結束)的時候調用movieFinishedCallback:方法;
    [[NSNotificationCenter defaultCenter]
     addObserver:self selector:@selector(movieFinishedCallback:)
     name:MPMoviePlayerPlaybackDidFinishNotification object:player];
    //設定視頻視圖的大小
    player.view.frame = CGRectMake(10, 10, 300, 300);
    //添加控制項
    [self.view addSubview:player.view];
    //播放影片
    [player play];
    [super viewDidLoad];
}
//電影停止播放時,你應該登出的通知,刪除的影片,然後釋放播放對象:
-(void)movieFinishedCallback:(NSNotification*) aNotification {
    MPMoviePlayerController *moviePlayer = [aNotification object];
    //登出通知
    [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer];
    //刪除影片
    [moviePlayer.view removeFromSuperview];
    //釋放
    [player release];
}

實現效果:

  
 
點擊右下角放大表徵圖
 
雙擊螢幕變成全屏:
            
點擊Done按鈕恢複原狀!!!
ok!實現!本部落格是我自己的練習,有好多地方沒有講太清楚,還請諒解!
 


摘自 任海麗(3G/移動開發)

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.