- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试在某个点搜索视频文件。假设视频长 5 分钟,我在 110 秒处跳入。
当我从头开始播放时,一切正常,但是,当我尝试搜索文件时,我可以听到音频但看不到视频。我首先认为这可能是我加载 subview 的顺序的问题,但我仍然可以看到(并使用)播放器的控件。滑回 0:00 开始播放视频。
以下是我的视频类(class)中的代码。 initIntoView 方法接受一个 UIView
,然后返回一个修改后的副本,然后将其写入主视图。提前为困惑的代码道歉。我对 Objective-C 还是很陌生。
初始化视频 View
- (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:
在模拟器上完美运行,而不是在设备上运行。
最佳答案
在尝试拼凑一个示例应用并上传到此处后,我发现 w3 version of Big Buck Bunny工作正常。这表明这是一个编码问题,而不是一个客观的 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
我在 here 上找到了这段代码通过this Stack Overflow post .
Primarily for low-cost applications that require additional data loss robustness, this profile is used in some videoconferencing and mobile applications. This profile includes all features that are supported in the Constrained Baseline Profile, plus three additional features that can be used for loss robustness (or for other purposes such as low-delay multi-point video stream compositing). The importance of this profile has faded somewhat since the definition of the Constrained Baseline Profile in 2009. All Constrained Baseline Profile bitstreams are also considered to be Baseline Profile bitstreams, as these two profiles share the same profile identifier code value.
我意识到这可能对这里寻求 Objective-C 帮助的任何人都没有帮助,但如果我今天花 5 个小时来尝试使它正常工作,它只为一个人节省了时间,那么这将是值得的。
关于ios - MPMoviePlayer 在查找文件时播放音频但不播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18593706/
我想使用以下代码隐藏 MPMoviePlayer 中的控件: -(IBAction)video:(id)sender { NSBundle *bundle = [NSBundle mainBundle
我正在使用 MPMoviePlayer 来播放电影。我希望能够播放电影并允许用户通过按按钮跳到电影中的特定时间。 我正在设置播放器的 currentPlaybackTime 属性,但它似乎不起作用。相
我正在使用 MP Movie Player 播放实时 channel 提要,我还在 View 上添加了点击手势,用于隐藏和取消隐藏 Collection View ,然后将此 View 添加到播放器
我希望在用谷歌搜索这些词的所有可能组合时能找到这个解决方案。 您是否像我一样认为可以下载 Apple 的 Movieplayer 示例,单击“构建并运行”并观看飞机电影?什么也没发生,对吧? 解决方法
在我的应用程序中,我有一个 UIWebview,其中显示了一个视频链接列表。单击这些链接之一,MPMoviePlayer 将自行启动。但在全屏模式下,它不会在需要时旋转。 现在如何旋转它,因为我无法在
需要使用 MpMoviePlayerController 在后台播放音频。我知道我必须使用这段代码来实现: AVAudioSession *audioSession = [AVAudioSessi
我正在使用 iPhone 中的视频应用程序。当用户点击一个按钮时,它会导致第二个 View ,然后我从那里播放来自 url 的视频。 但是当用户从该 View 返回并再次转到该 View 时,视频未播
我正在我的应用程序中的 MPMoviePlayer 中播放视频,我正在从服务器获取视频。如果视频长度大约为 25 秒或更长,音频就会中断。意味着当播放视频时,当它播放到一半时就听不到音频。但是如果我寻
我正在使用 MPMoviePlayerController 播放视频流。因为原始数据中嵌入了一些我需要解析的元数据,所以我需要找到一种方法来访问原始视频数据。有谁知道这样做的方法吗?嵌入的元数据没有
我遇到了这个奇怪的问题。当我使用 MpMoviePlayerController 播放任何视频时,如果我收到任何提醒警报 并且我选择了关闭,那么我的应用程序将崩溃并显示日志: "An AVPlayer
有没有办法检测在 MPMoviePlayerController 中播放视频时缓冲了多少数据? 我已经检查了 loadState,但这并没有给我足够的缓冲信息。 Youtube 的应用正是我想要的..
MPMoviePlayer 没有播放视频。我正在运行 iOS 7 并在设备和模拟器上遇到相同的错误: 2013-10-02 12:49:18.246 xxxx[688:60b] _itemFailed
我正在尝试在某个点搜索视频文件。假设视频长 5 分钟,我在 110 秒处跳入。 当我从头开始播放时,一切正常,但是,当我尝试搜索文件时,我可以听到音频但看不到视频。我首先认为这可能是我加载 subvi
我正在尝试使用 MPMoviePlayer 播放简单的电影,但控制台中一直出现此错误(但电影已播放):我的 xcode 版本是 4.3.1。 2012-03-24 14:51:49.488 europ
我正在编写一个应用程序,将照片卷中的电影存储到该应用程序的本地文档文件夹中。我可以使用 MPMoviePlayer 播放远程电影,但是尝试播放存储在应用程序文档文件夹中的电影总是返回 MPMovieL
我正在使用 MPMoviePlayer 来显示视频。我进入全屏模式,当单击完成按钮时,我希望它从我的 View 中删除整个电影播放器。目前它只退出全屏模式。您如何跟踪被点击的 doneButton
如果电影结束时出现错误,那么我可能会收到如下错误: Error Domain=MediaPlayerErrorDomain Code=-12847 "This movie format is not
在全新安装 Xcode 3.1.2 时,我尝试使用 iPhone MoviePlayer,如 http://developer.apple.com/iphone/library/codinghowto
我正在使用 iOS5。 我正在开发 HTTPLivestream 项目。这里我使用 MPMovieplayer ,我的问题是当应用程序转到后台时没有音频。我正在后台模式下更改 plist 为音频。但是
我有一部很长的电影,我将把它放入应用程序中,我想知道让用户回到他们上次停下的地方的最佳方法是什么。有人能指出我正确的方向吗? 因此,如果用户正在观看电影,点击“完成”,是否有当前时间的通知或我可以在该
我是一名优秀的程序员,十分优秀!