在寻找文件时,MPMoviePlayer播放音频但不播放video
我试图在某个时刻寻找video文件。 让我们说video是5分钟长,我在110秒跳进去。
当我从一开始玩的时候,一切都很顺利,然而,当我试图寻找文件时,我可以听到音频,但我看不到video。 我首先想到这可能是我正在加载子视图的顺序问题,但我仍然可以看到(并使用)播放器的控件。 回到0:00会启动video。
以下是我的video课程中的代码。 initIntoView方法接受UIView
,然后返回修改后的副本,然后将其写入主视图。 对不起凌乱的代码提前抱歉。 我对Objective-C还很陌生。
初始化video视图
- (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; }
开始播放video
-(void)play:(int)offset { //Offset is "110" [videoController setInitialPlaybackTime:offset]; [videoController play]; }
我已尝试在video开始播放之前和之后将videoController添加到viewRef
,但它具有相同的结果。
我也试过使用MPMoviePlayerViewController
无济于事。
我尝试的另一件事是将流式传输类型更改为MPMovieSourceTypeStreaming
但它似乎没有任何效果。
如果我错过了任何更重要的代码,请问我,我会看到我能做什么。
编辑:
Xcode 4.6.3
iOS 6
在iPad上测试2
编辑#2:
在模拟器上完美运行,而不是在设备上。
在尝试拼凑一个示例应用程序上传到这里之后,我发现大巴克兔子的w3版本运行良好。 这表明这是一个编码问题,而不是一个客观的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 – 线程0 {filename} .ipad.mp4
我在这里通过Stack Overflowpost找到了这段代码。
主要用于需要额外数据丢失稳健性的低成本应用程序,此配置文件用于某些video会议和移动应用程序。 此配置文件包括约束基线配置文件中支持的所有function,以及可用于损耗稳健性的三个附加function(或用于其他目的,如低延迟多点video流合成)。 自2009年约束基线配置文件的定义以来,此配置文件的重要性已逐渐消失。所有约束基线配置文件比特流也被视为基线配置文件比特流,因为这两个配置文件共享相同的配置文件标识符代码值。
– 来自维基百科
我意识到这可能无法帮助任何人在这里寻找Objective-C帮助,但如果它只节省一个人我今天花了5个小时试图让这个工作,这将是值得的。