MPMoviePlayerViewController播放媒体文件时在ios5.0上的区别--修改

Jacky Shin:
NSURL  *mediaFileUrl  =  [NSURL URLWithString :urlStr ] ;

    NSString *moviePath = [[NSBundlemainBundlepathForResource:@"head"ofType:@"mov"];

    NSURL *localURL = [[NSURL allocinitWithString: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

实验证明,
1. 如果是播放本地文件,采用上面的localURL和localURL1都会出现播放不正常。会出现播放的页面一闪然后像是播放完毕,自动退回去了。
而使用localURL2却能正常播放。(ipad2 ios6上测试)
2.  如果是播放网络文件,如苹果官方例子MoviePlayer中使用如下代码:

NSURL *theMovieURL = [NSURL URLWithString:self.movieURLTextField.text];

是使用的URLWithString的方式,换成initWithString也可以正常播放,但换成fileURLWithPath,则会失败。


下面部分来自网上。

示例代码:

NSString  *urlStr  = @ "http://videourl.com" ;
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在界面上)

NSURL  *mediaFileUrl  =  [ [NSURL alloc ] initFileURLWithPath :filePath ] ;

另外,可以利用NSNotificationCenter来获取媒体文件播放相关的各种事件。
例如:

[ [NSNotificationCenter defaultCenter ] removeObserver :self
                                                  name :MPMoviePlayerPlaybackDidFinishNotification
                                                object :self. playerVC. moviePlayer ] ;

  [[NSNotificationCenter defaultCenter] addObserver:self
                                           selector:@selector(mediaFinishedCallback:)
                                               name:MPMoviePlayerPlaybackDidFinishNotification
                                             object:self.playerVC.moviePlayer];

更多的Observer请参考Apple的文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值