在用SurfaceView播放视频时,如果处理不当,会出现有声音无图像的问题,主要的原因是,在调用MediaPlayer开始播放视频时,SurfaceView却还未创建成功,解决办法是判断SurfaceView创建成功后再调用MediaPlayer的播放,通过surfaceHolder的addCallBack()方法来监听surfaceCreated。
以下是2段源码,第1段有声音无图像,第2段有声音有图像
源码1:有声音无图像
import android.app.Activity;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
public class MainActivity extends Activity
{
private SurfaceView surfaceView = null ;
private SurfaceHolder surfaceHolder = null ;
private MediaPlayer mp = null ;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
surfaceView = new SurfaceView(this);
sur