代码如下所示:
AssetFileDescriptor fd = getResources().openRawResourceFd(R.raw.video);
mp.setDataSource(fd.getFileDescriptor(), fd.getStartOffset(), fd.getLength());
fd.close();
mp.setDisplay(videoView.getHolder()); //SurfaceView
mp.setScreenOnWhilePlaying(true);
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(final MediaPlayer mediaPlayer) {
Log.d(TAG, "Done");
}
});
mp.prepare();
mp.start();
此代码在Androids 4.x及更新版本上按预期工作(播放视频)。但是在Gingerbread上,我得到空屏幕,Logcat没有错误,但onCompletion
方法被调用。
另外,当我尝试使用Uri
代替AssetFileDescriptor
时,MediaPlayer
会抱怨uri为null
(但事实并非如此,它就像{{1} }},再次,它适用于4.x设备。
知道可能会发生什么,或者如何调试它?