视频播放提供黑屏但有声

时间:2011-09-21 19:56:08

标签: android video android-mediaplayer

我很难过。

我正在尝试使用媒体播放器播放视频,但在播放音频时,我得到的只是一个黑色的窗口。

我已经看到有关此问题的其他帖子,但我没有找到解决方案。我试图听从他们的建议。

媒体播放器在播放前准备好了。在播放之前,表面支架已创建并设置为媒体播放器的显示屏。

在三星Galaxy Tab和三星Galaxy S上测试。

我正在针对API级别7进行编译。

视频本身可以通过SD卡在设备的视频应用程序中播放,因此它应该兼容。

表面视图与视频的大小不同。这可能是一个问题。我需要对此做些什么还是自动拉伸?

这是我初始化时的内容:

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);
}

令人沮丧的是,一段版本的代码在不久前正常运行,但现在却没有。

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,并且与视频格式有关(编解码器MP4,WMV,AVI等)。

尝试在Android的默认播放器上运行视频,看看是否有效。如果不起作用,那么它可能是视频编解码器中的问题。

不要尝试在像VLC或Player MX这样的播放器上运行视频,他们已经嵌入了编解码器。