iOS播放視頻

 

iOS sdk為播放視頻提供了非常簡便方法,提供的MPMoviePlayerViewController類作為開發使用,在iOS4以前的版本是MPMoviePlayerController。

 

在iPhone開發規範中禁止使用私有API播放視頻,因此播放畫面的控制的控制項都是有iPhone提供好的,我們沒有別的選擇。我們能做的:

 

載入URL中視頻

 

播放、暫停視頻

 

使用者控制行為和縮放模式

 

產生通知

 

MPMoviePlayerController還可以播放互聯網上的視頻檔。但是建議你先將視頻檔下載到本地,然後播放。如果你不這樣做,iOS可能會拒絕播放很大的視頻檔。

 

這個類定義在MediaPlayer framework中。在你的應用程式中,先添加這個引用,然後修改MediaPlayerViewController.h檔。

 

ViewController.h
#import <UIKit/UIKit.h>

 

#import <MediaPlayer/MediaPlayer.h>

 

@interface ViewController : UIViewController

 

{

 

MPMoviePlayerViewController *moviePlayerView;

 

}

 

- (IBAction)playMovies:(id)sender;

 

-(void)playingDone;

 

@end



ViewController.m
#import "ViewController.h"

 

@interface ViewController ()

 

@end



@implementation ViewController

 

- (void)viewDidLoad

 

{

 

[super viewDidLoad];

 

//初始化通知

 

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

 

}
- (IBAction)playMovies:(id)sender {

 

//初始化播放機並且設定播放模式

 

moviePlayerView = [[MPMoviePlayerViewController alloc]initWithContentURL:[NSURL fileURLWithPath: [[NSBundle mainBundle]pathForResource:@"po" ofType:@"mp4"]]];

 

//設定播放模式

 

moviePlayerView.moviePlayer.controlStyle = MPMovieControlStyleFullscreen;

 

//控制模式(觸摸)

 

moviePlayerView.moviePlayer.scalingMode = MPMovieScalingModeAspectFill;

 

// MPMovieControlStyleNone

 

//MPMovieControlStyleEmbedded

 

//MPMovieControlStyleDefault

 

//開始播放

 

[[[UIApplication sharedApplication]keyWindow]addSubview:moviePlayerView.view];

 

/*視頻檔可以播放資原始目錄、沙箱目錄和網路播放。本例中我們採用資原始目錄。

 

moviePlayerView.moviePlayer屬性是MPMoviePlayerController類型,它有的controlStyle屬性

 

可以控制播放行為,它的取值有:

 

MPMovieControlStyleFullscreen

 

MPMovieControlStyleNone沒有播放控制項

 

MPMovieControlStyleEmbedded

 

MPMovieControlStyleDefault

 

MPMoviePlayerController類還有scalingMode屬性用於控制影片的尺寸,它的取值有:

 

MPMovieScalingModeNone原始尺寸

 

MPMovieScalingModeAspectFit縮放到一個填充方向

 

MPMovieScalingModeAspectFill填充兩邊可能會切除一部分

 

MPMovieScalingModeFill填充兩邊可能會改變比例

 

*/}



-(void)playingDone

 

{

 

NSLog(@"播放完成");

 

[moviePlayerView.view removeFromSuperview];

 

moviePlayerView = nil;

 

}



-(void)dealloc

 

{

 

//移除通知

 

[[NSNotificationCenter defaultCenter]removeObserver:self];

 

}

 

@end

 

創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()