对不起,这个video不能播放 – streamMP4到Android

我已经全面search了解决scheme(包括SO),但仍然没有find解决scheme。

我需要在我的应用程序中有一个简单的video播放。 这比带video的简单窗口简单一点。 简化,我有两个布局在我的屏幕上,其中一个包含一些其他的东西,另一个是有video窗口。 还有一个button可以在两者之间切换。 这一切都工作得很好,后我发现videoview不能出现在一个视图“可见性” – 因此我添加/删除/从容器布局在需要的时候。

但是,我有实际的video播放的问题。 当我尝试激活它,我得到了可怕的错误Sorry, this video cannot be played. 这里的问题之一就是讨论video格式( 安卓 – 不能播放任何video(mp4 / mov / 3gp /等)? ) – 但我已经有了什么似乎是正确的格式,320px宽度和一切。 其中的一个答案提到, 这里的video“绝对有效”。 我尝试了几个从那里 – 但我有另一个普通的野兽: Sorry, this video is not valid for streaming to this device.

请注意,我正在testing一个实际的设备,因为video播放不能在模拟器中工作。 另外请注意,该解决scheme必须在Android 1.6及更高版本(客户的要求)上工作。 我正在testing的设备是LG GT540 Optimus与Android 2.1(目前我没有任何其他设备可用)。

从我的想法,如果我不使用qt-faststart的video,我得到错误Sorry, this video is not valid for streaming to this device. 如果我使用qt-faststart ,那么我Sorry, this video cannot be played.

这是我的播放代码:

 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(); 

现在,我试图播放的video是从HTTP进行下载: object.getVideoURL()返回http://www.ooklnet.com/files/381/381489/video.mp4

有谁能帮我解决这个问题吗? 在整个应用程序准备就绪之前,这是我需要完成的最后一件事情。

非常感谢!

编辑:我尝试使用MediaPlayer – 但比VideoView更糟的结果,所以回到VideoView。 现在,在模拟器中,我得到一个黑色的屏幕,控制器hover在上面,video的声音播放良好,随着播放的继续,进度也在调整。 但是,在我的实际设备上,我仍然Sorry, this video cannot be played. 错误

原来问题是video的格式(具体来说,我用ffmpeg来创buildMP4video的参数)。 我确保这些video是baseline H.264 – 并且一切正常。 看到这个问题的更多细节。

也许你需要改变你设置MediaPlayer的方式。 我只是把你的示例video的url插入apidemos的例子,它工作得很好。

请参阅: http : //developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo_Video.html

希望有所帮助。