来自AssetFileDescriptor的MediaPlayer setDataSource在Gingerbread上没有显示任何内容

时间:2015-11-18 15:18:49

标签: android android-mediaplayer android-2.3-gingerbread

代码如下所示:

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设备。

知道可能会发生什么,或者如何调试它?

0 个答案:

没有答案