iOS用MPMoviePlayerViewController 播放MP4視頻 – iPhone手機開發技術文章 iPhone軟體開發教學課程

iOS播放視頻

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

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

加載URL中視頻

播放、暫停視頻

用戶控制行為和縮放模式

產生通知

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

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

ViewController.h

#import

#import

@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

發佈留言