Reputation: 6050
I try to render an mp4 file I added to my android ressources in res/raw
like so:
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(); } } }
but all I experience is the sound of the video, the screen keeps blank on my Samsung GalaxyTab. The source file is an mp4 file (H.264 AVC, 960x640, 30fps) and can be played perfectly fine with Quicktime and VLC.
I tried to downscale and resize the original video with Handbrake, down to 480x320 and 25fps, I tried several settings in handbrake, everything without success.
Is there anything obviously wrong with my code or is it the video format or something else - what am I doing wrong?
Thanks in advance, Thomas.
Upvotes: 4
Views: 4118
Reputation: 148
Give MediaPlayer a PreparedListener. And call MediaPlayer.start() in PreparedListener.
Upvotes: 0
Reputation: 6050
I couldn't get the above way to work, but I found that it worked when I solely used the provided functionality of Android's VideoView
like this:
...
String videoUri = "android.resource://my.package.path/raw/intro_video";
introVideo.setVideoURI(Uri.parse(videoUri));
introVideo.start();
...
Upvotes: 4
Reputation: 8225
Is it the 10.1v tab (running 3.0 or 3.1) or an "old" one running 2.2?
According to this: http://developer.android.com/guide/appendix/media-formats.html you seem to need 3.0+ for H.264 AVC. I have had troubles with H 264 myself even with recommended values, had to downscale the sound even more. Might be worth looking in to.
Upvotes: 2