我尝试在 res/raw
中渲染我添加到我的 android 资源的 mp4 文件,如下所示:
public class Main extends RoboActivity { @InjectView(R.id.introVideo) private VideoView introVideo; private MediaPlayer player; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.main); player = MediaPlayer.create(this, R.raw.intro_video2); SurfaceHolder holder = introVideo.getHolder(); player.setDisplay(holder); player.start(); player.setOnCompletionListener(new OnCompletionListener() { public void onCompletion(MediaPlayer mp) { startActivity(new Intent(Main.this, Story.class)); releasePlayer(); } }); } @Override protected void onPause() { super.onPause(); releasePlayer(); } @Override protected void onDestroy() { super.onDestroy(); releasePlayer(); } private void releasePlayer() { if (player != null) { player.release(); } } }
但我所体验到的只是视频的声音,我的 Samsung GalaxyTab 屏幕一直空白。源文件是一个 mp4 文件(H.264 AVC,960x640,30fps),可以用 Quicktime 和 VLC 完美播放。
我尝试使用 Handbrake 缩小原始视频并调整其大小,降低到 480x320 和 25fps,我尝试了 handbrake 中的几种设置,但都没有成功。
我的代码是否有任何明显的错误,或者是视频格式还是其他问题 - 我做错了什么?
提前致谢, 托马斯。
最佳答案
我无法通过上述方式工作,但我发现当我单独使用 Android 的 VideoView
提供的功能时它可以工作,如下所示:
...
String videoUri = "android.resource://my.package.path/raw/intro_video";
introVideo.setVideoURI(Uri.parse(videoUri));
introVideo.start();
...
关于android - 在 Android 上播放 mp4 文件时没有视频显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6618326/