我难住了。
我正在尝试使用媒体播放器播放视频,但在播放音频时,我得到的只是一个黑色窗口。
我看过其他关于这个问题的帖子,但我一直没有找到解决方案。我试着听从他们的建议。
媒体播放器在播放前准备好。在播放之前,已创建表面支架并将其设置为媒体播放器的显示。
在三星 Galaxy Tab 和三星 Galaxy S 上测试。
我正在针对 API 级别 7 进行编译。
视频本身可以从 sdcard 在设备的视频应用程序中播放,因此它应该是兼容的。
表面视图与视频大小不同。所以这可能是个问题。我需要对此做些什么还是自动处理拉伸?
这是我在初始化中的内容:
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(width, height);
lp.leftMargin = x;
lp.topMargin = y;
mSurfaceView = new SurfaceView(mActivity);
mSurfaceView.requestFocus();
mSurfaceView.setZOrderOnTop(true);
mSurfaceView.getHolder().addCallback(player);
mSurfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
mLayout.addView(mSurfaceView, lp);
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setDataSource(assetDescriptor.getFileDescriptor(), assetDescriptor.getStartOffset(), assetDescriptor.getLength());
mMediaPlayer.setOnErrorListener(player);
mMediaPlayer.setOnPreparedListener(player);
mMediaPlayer.prepare();
这是我的回调:
public void onPrepared(MediaPlayer mp)
{
mMediaPlayer.start();
}
public void surfaceCreated (SurfaceHolder holder)
{
mMediaPlayer.setDisplay(holder);
}
令人沮丧的是,该代码的某个版本在前一段时间可以正常工作,但现在却不行了。