视图在右侧位置显示为黑框,但没有任何反应.
我期待电影开始播放,但没有任何事情发生,也没有提示应用程序的原因.
任何人都可以看到这出错的地方?
-(IBAction) playbuttonClicked:(ID)sender{ Nsstring* path = [[NSBundle mainBundle] pathForResource:@"sample_mpeg4" ofType:@"mp4"]; NSLog(@"Using vIDeoPath %@",path); NSURL* url = [NSURL fileURLWithPath:path]; MPMovIEPlayerController *player = [[MPMovIEPlayerController alloc] initWithContentURL:url]; [self.vIEw addSubvIEw:player.vIEw]; player.vIEw.frame = CGRectMake(10,10,300,220); [player play];
}
电影存在并记录正确的路径,但仍然没有电影播放.
2012-07-06 11:51:13.492 experiments[84702:12203] Using vIDeoPath /Users/marius/library/Application Support/iPhone Simulator/5.1/Applications/9799C851-8D2B-4CFE-8CFA-A4C4C954787F/experiments.app/sample_mpeg4.mp4
根据我的阅读和理解,这应该是有效的.
关于尝试什么的任何提示或建议?
我将电影移动到http服务器(fg.mp4)并拖尾访问日志.
单击播放按钮时,会出现通常的黑色窗口.
ServersIDe我在日志中找到两个新条目:
168.122.x.x - - [06/Jul/2012:22:42:33 +0200] "GET /fg.mp4 http/1.1" 304 192 "-" "AppleCoreMedia/1.0.0.9B176 (iPhone Simulator; U; cpu OS 5_1 like Mac OS X; en_us)"168.122.x.x - - [06/Jul/2012:22:42:33 +0200] "GET /fg.mp4 http/1.1" 206 33304 "-" "AppleCoreMedia/1.0.0.9B176 (iPhone Simulator; U; cpu OS 5_1 like Mac OS X; en_us)"
因此,手机可以获取部分电影内容,并且 – 显然 – 准备在需要时完成其余部分.
我错过了MPMovIEPlayerController有一些明显的参数吗?
更新:解决方案和工作代码
问题是由ARC引起的,并且在调用设置控制器的方法后没有保留对MPMovIEPlayerController的引用.
解决方案:在类中添加一个类变量,并使用它在电影的生命周期内保持对控制器的引用.
所以在类声明的早期(在任何消息/函数定义之外):
MPMovIEPlayerController* mpController;
并且提到的playbuttonClicked使用此变量来跟踪控制器:
Nsstring* path = [[NSBundle mainBundle] pathForResource:@"sample_mpeg4" ofType:@"mp4"];NSURL* url = [NSURL fileURLWithPath:path];mpController = [[MPMovIEPlayerController alloc] initWithContentURL:url];mpController.vIEw.frame = CGRectMake(10,220);[self.vIEw addSubvIEw:mpController.vIEw];[mpController play];解决方法 与我对 MPMoviePlayerController playback terminates before video finishes的回答一样,这看起来像是内存管理(实例生命周期)问题.假设您正在使用ARC进行编译,那么当您的playbuttonClicked:方法返回时,播放器变量将被释放.此时,MPMovIEPlayerController实例接受其蝙蝠和球,然后回家.
尝试将MPMovIEPlayerController实例分配给强实例变量或属性.
总结以上是内存溢出为你收集整理的objective-c – MPMoviePlayerController不播放任何视频内容[由于ARC和内存管理]全部内容,希望文章能够帮你解决objective-c – MPMoviePlayerController不播放任何视频内容[由于ARC和内存管理]所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)