iphone - 为什么 MPMoviePlayerController 在模拟器中有效,但在设备中无效?

标签 iphone objective-c video media mpmovieplayercontroller

我在让 MPMoviePlayerController 在设备上运行时遇到问题。它在模拟器中运行良好,播放五秒视频,然后将适当的回调 (myMovieFinishedCallback:) 发送到 View Controller 。当它在设备上运行时,电影永远不会显示,即使我可以毫无问题地通过 [player play] 进行跟踪。 myMovieFinishedCallback: 从未被调用,并且没有错误。所有正确的资源都被复制。知道发生了什么吗?

这是我用来创建和使用播放器的代码,

更新:我已改用 MPMoviePlayerViewController。在设备上,电影仍然无法播放,我只是无限期地旋转进度轮。即使我将播放器设置为 MPMovieControlStyleNone,控件也会短暂闪烁 - 有人知道我该如何解决这个问题吗?影片时长 5 秒,大小约为 1.5 MB(如果有什么区别的话)。

更新:其他电影文件可以工作,但我不知道如何让我的文件工作。我已经尝试过将其作为 .mov 和 .mp4 进行使用,设置似乎是正确的。知道什么会导致 MPMoviePlayer 仅在设备上永远显示进度轮吗?

- (void) playMovie
{
    NSString *url = [[NSBundle mainBundle] 
                     pathForResource:@"myMovie" 
                     ofType:@"mp4"];

MPMoviePlayerViewController *playerViewController = 
[[MPMoviePlayerViewController alloc] 
 initWithContentURL:[NSURL fileURLWithPath:url]];

playerViewController.moviePlayer.controlStyle = MPMovieControlStyleNone;
playerViewController.moviePlayer.scalingMode = MPMovieScalingModeFill;

[[NSNotificationCenter defaultCenter] 
 addObserver:self
 selector:@selector(myMovieFinishedCallback:)
 name:MPMoviePlayerPlaybackDidFinishNotification
 object:[playerViewController moviePlayer]];

playerViewController.view.frame = movieView.frame;

[movieView addSubview:playerViewController.view];

//---play movie---
MPMoviePlayerController *player = [playerViewController moviePlayer];
[player play];
}   

最佳答案

你的代码对我来说工作得很好,所以我想到了两种可能性(可能还有其他可能性):

  1. movieView尚未正确初始化或尚未设置其框架以使其可见。
  2. 设备不支持您正在显示的视频的视频格式。

我会尝试使用不同的视频。也许您可以确认您以前在该设备上玩过游戏。这是我整理的小演示项目:http://www.cimgf.com/files/PlayMovie.zip

关于iphone - 为什么 MPMoviePlayerController 在模拟器中有效,但在设备中无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3461816/

相关文章:

iphone - 以编程方式打开 iphone 日历应用程序

iphone - IOS中的按钮组

ios - 去除 64 位 SDK 的警告

iphone - subview 淡入淡出帮助

c++ - 使用 OpenCV 检测图像中的十字

Android:替代已弃用的 Context.MODE_WORLD_READABLE?

iphone - ABMultiValueRef 上的 iOS 地址簿错误

ios - presentViewController 后黑屏

iOS 允许用户信任某些证书?

video - 如何捕获YouTube视频的图像并在网站上显示