MPMoviePlayer在跳转到文件中时播放音频但不播放视频

3
我正在尝试在特定点处查找视频文件。假设视频长度为5分钟,我要从110秒开始跳转。
当我从开头播放时,一切都正常播放。然而,当我尝试查找文件时,我可以听到音频,但看不到视频。我最初认为这可能是我加载子视图的顺序有问题,但我仍然可以看到(和使用)播放器的控件。将滑块滑回0:00即可开始视频。
以下是我的视频类中的代码。initIntoView方法接受一个UIView,然后返回一个修改后的副本,该副本随后被写入主视图。很抱歉代码有些混乱。我还是Objetive-C的新手。
初始化视频视图
- (WWFVideo*) initIntoView: (UIView*) view withContent:(NSDictionary*)contentDict{
    self=[super init];
    viewRef=view;
    contentData = contentDict;
    NSURL *videoUrl = [[NSURL alloc]initWithString:[contentDict objectForKey:@"cnloc"]]; //Returns a HTTP link to my video file (MP4, H.246, AAC Audio)
    videoController = [[MPMoviePlayerController alloc] init];
    videoController.movieSourceType = MPMovieSourceTypeFile;
    [videoController setContentURL:videoUrl];   
    videoController.view.frame = viewRef.bounds;
    [videoController.view setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];
    [viewRef addSubview:videoController.view];
    return self;
}

开始播放视频。
-(void)play:(int)offset { //Offset is "110"
    [videoController setInitialPlaybackTime:offset];
    [videoController play];
}

我已经尝试在视频播放之前和之后将videoController添加到viewRef中,但结果相同。
我还尝试使用MPMoviePlayerViewController,但无济于事。
我还尝试将流媒体类型更改为MPMovieSourceTypeStreaming,但似乎没有任何影响。
如果我错过了任何重要的代码,请问一声,我会尽力而为。
编辑: Xcode 4.6.3 iOS 6 在iPad 2上测试
编辑#2: 在模拟器上完美运行,但在设备上无法运行。

在播放之前加入以下代码可以加快过渡速度:[videoController prepareToPlay]; - timquinn
1个回答

2
尝试组合一个样例应用程序上传到这里后,我发现 Big Buck Bunny 的w3版本 可以正常工作。这表明这是一个编码问题而不是Objective C问题。
我使用以下命令重新编码了之前尝试播放的相同文件,但现在采用baseline配置文件:

ffmpeg -i {filename} -acodec aac -ac 2 -strict experimental -ab 160k -s {ssize} -vcodec libx264 -preset slow -profile:v baseline -level 30 -maxrate 10000000 -bufsize 10000000 -b 1200k -f mp4 -threads 0 {filename}.ipad.mp4

我在这里找到了这段代码,通过这个Stack Overflow帖子
主要用于需要额外数据丢失鲁棒性的低成本应用程序,该配置文件用于某些视频会议和移动应用程序。此配置文件包括所有受约束基线配置文件支持的功能,以及三个可用于丢失鲁棒性(或其他用途,例如低延迟多点视频流合成)的附加功能。此配置文件的重要性自2009年约束基线配置文件的定义以来已经有所减弱。所有受限基线配置文件比特流也被视为基线配置文件比特流,因为这两个配置文件共享相同的配置文件标识符代码值。

-维基百科

我意识到这可能无法帮助在这里寻找Objective-C帮助的任何人,但如果能节省一个人今天花费的5小时来尝试使其正常工作,那么这将是值得的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接