在 Android 上播放 mp4 文件时没有视频显示

Posted

技术标签:

【中文标题】在 Android 上播放 mp4 文件时没有视频显示【英文标题】:No video display when playing an mp4 file on Android 【发布时间】:2011-09-30 21:24:30 【问题描述】:

我尝试渲染一个我添加到我在res/rawandroid 资源中的 mp4 文件,如下所示:

公共类 Main 扩展 RoboActivity @InjectView(R.id.introVideo) 私人 VideoView 介绍视频; 私人 MediaPlayer 播放器; @覆盖 public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 设置内容视图(R.layout.main); 播放器 = MediaPlayer.create(this, R.raw.intro_video2); SurfaceHolder 支架 = introVideo.getHolder(); player.setDisplay(holder); 播放器.start(); player.setOnCompletionListener(new OnCompletionListener() 公共无效 onCompletion(MediaPlayer mp) startActivity(new Intent(Main.this, Story.class)); 释放播放器(); ); @覆盖 受保护的无效 onPause() 超级.onPause(); 释放播放器(); @覆盖 受保护的无效 onDestroy() super.onDestroy(); 释放播放器(); 私人无效释放播放器() 如果(玩家!= null) 播放器.release();

但我所体验的只是视频的声音,我的三星 GalaxyTab 上的屏幕一直是空白的。源文件是 mp4 文件(H.264 AVC,960x640,30fps),可以用 Quicktime 和 VLC 完美播放。

我尝试使用 Handbrake 缩小和调整原始视频的大小,降至 480x320 和 25fps,我尝试了 handbrake 中的几种设置,但均未成功。

我的代码有什么明显的问题,还是视频格式或其他问题 - 我做错了什么?

提前致谢, 托马斯。

【问题讨论】:

我同时尝试使用来自support.apple.com/kb/HT1425 的不同测试媒体文件,而 none 显示视频(有些甚至崩溃,mov 和 mpeg2),所以我怀疑有些东西我的代码有问题,sigh 【参考方案1】:

我无法以上述方式工作,但我发现当我像这样单独使用 Android 的VideoView 提供的功能时它可以工作:

...
String videoUri = "android.resource://my.package.path/raw/intro_video";
introVideo.setVideoURI(Uri.parse(videoUri));
introVideo.start();
...

【讨论】:

【参考方案2】:

它是 10.1v 选项卡(运行 3.0 或 3.1)还是运行 2.2 的“旧”选项卡?

据此:http://developer.android.com/guide/appendix/media-formats.html 您似乎需要 3.0+ 才能使用 H.264 AVC。 即使使用推荐值,我自己也遇到了 H 264 的问题,不得不进一步缩小声音。可能值得关注。

【讨论】:

不幸的是,这仍然是 2.2,而不是 3.0,而且我无论如何都需要针对电话设备定位 2.2。我已经查看了您之前链接到的页面,当我解释这一点时,您需要 3.0+ 的 encoding,但没有特定版本的 decoding H.264。不幸的是,LogCat 也不是很有帮助,并且没有列出任何解码/格式错误。如果我能得到一个转码器,我可以尝试将视频重新编码为 H.263...

以上是关于在 Android 上播放 mp4 文件时没有视频显示的主要内容,如果未能解决你的问题,请参考以下文章

android mediaplayer 播放 mp4 的问题

Android:无法播放 mp4 视频

无法在 Xamarin Android 上播放本地视频

Android WebView 中的 HTML5 视频不一致

如何在 mp4 视频文件中添加 MOOV 原子

解决部分mp4视频在ios上无法播放问题