NSString *moviePath = [[NSBundlemainBundle] pathForResource:@"head"ofType:@"mov"];
NSURL *localURL = [[NSURL alloc] initWithString:moviePath];
NSURL *localURL1 = [NSURL URLWithString:moviePath];
NSURL *localURL2 = [NSURL fileURLWithPath:moviePath];
NSLog(@"localURL=%@, localURL1=%@, localURL2=%@", localURL,localURL1, localURL2);
输出为:
2012-12-25 15:26:57.342 MMPl[4174:907]
localURL =/var/mobile/Applications/B89AE103-A5BF-4EFA-B3AE-B3D40DA00BD2/MMPl.app/head.mov, localURL1=/var/mobile/Applications/B89AE103-A5BF-4EFA-B3AE-B3D40DA00BD2/MMPl.app/head.mov, localURL2=file://localhost/var/mobile/Applications/B89AE103-A5BF-4EFA-B3AE-B3D40DA00BD2/MMPl.app/head.mov
实验证明,
NSURL *theMovieURL = [NSURL URLWithString:self.movieURLTextField.text];
是使用的URLWithString的方式,换成initWithString也可以正常播放,但换成fileURLWithPath,则会失败。
下面部分来自网上。
示例代码:
NSURL *mediaFileUrl = [NSURL URLWithString :urlStr ] ;
MPMoviewPlayerViewController *playerVC =
[[[MPMoviePlayerViewController alloc] initWithContentURL:mediaFileUrl] autorelease];
[self presentModalViewController:playerVC animated:YES];
[[playerVC moviePlayer] play];
需要注意的是,使用本地媒体文件时,利用来进行实例化时,iOS4.X系列可以正常播放,但是到了iOS5.X时,
就必须使用下面的method来实例化,否则媒体文件不能正常播放。(本人亲测,确如所言,否则,则看不到player.view在界面上)
另外,可以利用NSNotificationCenter来获取媒体文件播放相关的各种事件。
例如:
name :MPMoviePlayerPlaybackDidFinishNotification
object :self. playerVC. moviePlayer ] ;
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(mediaFinishedCallback:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:self.playerVC.moviePlayer];
更多的Observer请参考Apple的文档