博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MPMoviePlayerViewController播放媒体文件时在ios5.0上的区别--修改
阅读量:4116 次
发布时间:2019-05-25

本文共 1953 字,大约阅读时间需要 6 分钟。

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的文档

转载地址:http://sqwpi.baihongyu.com/

你可能感兴趣的文章
Ribbon 学习(三):RestTemplate 请求负载流程解析
查看>>
深入理解HashMap
查看>>
XML生成(一):DOM生成XML
查看>>
XML生成(三):JDOM生成
查看>>
Ubuntu Could not open lock file /var/lib/dpkg/lock - open (13:Permission denied)
查看>>
collect2: ld returned 1 exit status
查看>>
C#入门
查看>>
查找最大值最小值
查看>>
C#中ColorDialog需点两次确定才会退出的问题
查看>>
数据库
查看>>
nginx反代 499 502 bad gateway 和timeout
查看>>
linux虚拟机安装tar.gz版jdk步骤详解
查看>>
python猜拳游戏
查看>>
python实现100以内自然数之和,偶数之和
查看>>
python数字逆序输出及多个print输出在同一行
查看>>
ESP8266 WIFI数传 Pixhaw折腾笔记
查看>>
苏宁产品经理面经
查看>>
百度产品经理群面
查看>>
去哪儿一面+平安科技二面+hr面+贝贝一面+二面产品面经
查看>>
element ui 弹窗在IE11中关闭时闪现问题修复
查看>>