暂停MediaPlayer视频并保持屏幕可见

时间:2013-06-26 17:59:34

标签: android video media-player android-mediaplayer

我想知道是否有办法暂停媒体播放器并保持屏幕可见。我的意思是在屏幕暂停时将当前图像保留在屏幕上。我所做的是设置一个计时器,暂停媒体播放器一段时间。由于暂停,我希望当前视频可见。但是,每当我暂停Mediaplayer时屏幕变黑,直到我再次调用Mediplayer.start()。无论如何都有这个。

由于

使用代码编辑

public class FullImageActivity extends Activity implements SurfaceHolder.Callback, OnPreparedListener, OnErrorListener{

private static final String TAG = null;
MediaPlayer player;
SurfaceView surfaceview;
SurfaceHolder surfaceHolder;
int width;
int height;
String path;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.full_image);

    Intent i = getIntent();

    long id = i.getExtras().getLong("id");
    path = i.getExtras().getString("videopath");

    surfaceview = (SurfaceView)findViewById(R.id.surfaceview);
    surfaceHolder = surfaceview.getHolder();
    surfaceHolder.addCallback(this);

    player = new MediaPlayer();
    playVideo();


}

public void playVideo(){
    try {
        player.reset();


        player.setOnErrorListener(this);
        player.setDataSource(path);
        player.setOnPreparedListener(this);

        player.prepareAsync();


    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (SecurityException e) {
        e.printStackTrace();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

}
@Override
protected void onPause() {
        player.release();
        Log.i(TAG, "Mediaplayer was relased");
    super.onPause();
}
@Override
protected void onResume() {
    playVideo();
    super.onResume();
}
@Override
protected void onStop() {
    // TODO Auto-generated method stub
    super.onStop();
}
@Override
public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {
    // TODO Auto-generated method stub

}
@Override
public void surfaceCreated(SurfaceHolder holder) {
    player.setDisplay(holder);
}

@Override
public void surfaceDestroyed(SurfaceHolder arg0) {
    // TODO Auto-generated method stub

}
@Override
public void onPrepared(MediaPlayer p) {
    width=player.getVideoWidth();
    height=player.getVideoHeight();

    if (width!=0 && height!=0) {
        surfaceHolder.setFixedSize(width, height);
        player.start();
        player.pause();
        Timer timer = new Timer();
        timer.schedule(new TimerTask()
        {
            public void run()
            {
                player.start();
            }
        }, 3000);
    }
}

0 个答案:

没有答案