android中的MediaPlayer.setDisplay()

android中的MediaPlayer.setDisplay(),android,Android,我正在android中使用MediaPlayer类创建视频播放器。我在MediaPlayer.setDisplay()中设置了一个SurfaceHolder,它成功地显示了视频,但当此活动再次恢复时,将不会显示任何视频。那怎么了 代码是: public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); player = new

我正在android中使用MediaPlayer类创建视频播放器。我在MediaPlayer.setDisplay()中设置了一个SurfaceHolder,它成功地显示了视频,但当此活动再次恢复时,将不会显示任何视频。那怎么了

代码是:

public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);
        player = new MediaPlayer();
        surface = (SurfaceView)findViewById(R.id.surface);
        surface.setOnClickListener(new OnClickListener() 
        { 
            @Override
            public void onClick(View v) 
            {
                VideoDemo.this.startActivity(new Intent(VideoDemo.this, AnotherActivity.class));//Video not displayed when return from this activity by pressing back button
            }
        });
        holder = surface.getHolder();
        holder.addCallback(this);
        holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        try  
        {
            String songName = Environment.getExternalStorageDirectory().toString()+File.separator+"1.mp4";
            player.setDataSource(songName);
            player.prepare();
            player.start();

        }
        catch (Exception e) 
        {
            e.printStackTrace();
        }

    }
    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) 
    { 
        player.setDisplay(holder);      
    }
    @Override
    public void surfaceCreated(SurfaceHolder holder) 
    {
        Log.d(TAG, "surfaceCreated() is called ************ holder.getSurface() = "+holder.getSurface());
    }
    @Override
    public void surfaceDestroyed(SurfaceHolder holder) 
    {
        Log.d(TAG, "surfaceDestroyed() is called ************");
    }

我已经初始化媒体播放器再次和现在的工作良好