我已经在各处寻找解决方案,包括Stack Overflow,但仍未找到解决方法。
我需要在我的应用程序中进行简单的视频播放。这比简单的窗口和视频要复杂一些。简单来说,我在屏幕上有两个布局,一个包含其他一些内容,另一个是用于视频窗口。还有一个按钮可以在两者之间切换。所有这些都很好用,只是在我发现videoview不能存在于视图可见性为'gone'的情况下之后 - 因此当需要时,我将其添加/从容器布局中删除。
然而,我遇到了实际视频播放的问题。当我尝试激活它时,我会得到可怕的错误对不起,无法播放此视频。
这里的一个问题讨论了视频格式(Android -- Can't play any videos (mp4/mov/3gp/etc.)?)- 但是我已经拥有了似乎是正确的格式,具有320px的宽度和其他一切。那个线程上的一个答案提到这里的视频“绝对有效”。我试了一些来自那里的视频 - 但我得到了另一个常见问题:对不起,此视频无法流式传输到此设备。
请注意,我正在实际设备上测试,因为模拟器中的视频播放不起作用。还要注意,解决方案必须在Android 1.6及以上版本上工作(客户的要求)。我正在测试的设备是带有Android 2.1的LG GT540 Optimus(目前我没有其他可用设备)。
从我找出来的情况来看,如果我不在视频上使用qt-faststart
,则会出现错误对不起,此视频无法流式传输到此设备。
如果我使用qt-faststart
,那么我会得到对不起,无法播放此视频。
这是我的播放代码:
VideoViewer videoPlayer = new VideoViewer(this);
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(videoPlayer);
videoPlayer.setMediaController(mediaController);
videoPlayer.setVideoURI(Uri.parse(object.getVideoURL()));
LinearLayout container = (LinearLayout)ObjectInfo.this.findViewById(R.id.VideoContainer);
container.setVisibility(VISIBLE);
container.addView(videoPlayer, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
videoPlayer.requestFocus();
videoPlayer.start();
现在,我尝试播放的视频需要从HTTP进行渐进式下载:
object.getVideoURL()
返回http://www.ooklnet.com/files/381/381489/video.mp4。请问有人能帮我解决这个问题吗?这是我完成整个应用程序之前需要解决的最后一件事情。
非常感谢!
编辑:我尝试使用MediaPlayer,但结果比使用VideoView还要糟糕,所以我又回到了VideoView。现在,在模拟器中,我看到一个黑屏,上面悬浮着控件,视频的声音正常播放,并且随着播放进度调整。然而,在我的实际设备上,我仍然收到“抱歉,无法播放此视频”的错误提示。