2010-06-05 4 views
2

내 앱에서 VideoView를 사용하여 비디오를 재생하고 있습니다. 버튼을 클릭하면 동영상의 현재 위치가 기록되고 앱은 URL이있는 브라우저를 엽니 다. 뒤로 버튼을 누르면 응용 프로그램이 비디오 응용 프로그램으로 돌아와서 중단 된 지점에서부터 비디오를 다시 시작합니다.Android VideoView resume and seekTo

Android Activity 라이프 사이클을 살펴본 후 비디오 활동이 포어 그라운드로되면 onStart() 메서드가 호출되는 것을 보았습니다. 그래서 onStart()에서 레이아웃을 만들고 현재 위치로 이동하여 비디오를 재생합니다.

내 문제는 비디오가 다시 시작될 때 처음부터 버퍼링 한 다음 찾는 것입니다. 버퍼가 처음으로 버퍼링되었으므로 seekTo를 수행하는 동안 버퍼링을 다시 제거 할 수있는 방법이 있습니까?

감사 크리스

+0

[7276825] (http://stackoverflow.com/questions/7276825/problem-with-videoview-on-android/11938750#11938750)에서 제안하는 내용을 살펴보십시오. –

답변

0

나는 비슷한 문제가 있습니다. 내가 시작하기 전에 seekTo 않는 OnPreparedListener 있습니다. seekTo는 비디오의 맨 처음부터 재생되는 오디오 결함이 있다는 것을 제외하고는 재생 및 검색을 시작하는 것처럼 작동합니다. 내 코드가 버퍼링 문제를 설명하는 데 도움이되는지는 모르겠지만이를 밝히는 데 도움이 될 수 있습니다.

mVideoView.setVisibility(View.VISIBLE); 
    //get current window information, and set format, set it up differently, if you need some special effects 
    getWindow().setFormat(PixelFormat.TRANSLUCENT); 
    //mVideoView.setVideoURI(Uri.parse(path)); 
    mVideoView.setVideoPath(path); 
    //get focus, before playing the video. 
    mVideoView.requestFocus(); 
    mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
     @Override 
      public void onPrepared(MediaPlayer mp) {       
      mVideoView.seekTo(mImageSeek); 
      mVideoView.start(); 
     } 
    }); 
0

하면 자원 VideoView를 지켜 보면서 그때 당신은 PrepareListener

를 사용하기 전에 .setMediaController(new MediaController(this));

videoview.requestFocus(); 

을 추가해야

videoview = (VideoView) findViewById(R.id.videoview_play); 
videoview.setVideoPath(dir + videoName); 
//get focus, before playing the video. 
videoview.setMediaController(new MediaController(this)); 
videoview.requestFocus(); 
videoview.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
             public void onPrepared(MediaPlayer mp){       
             videoview.seekTo(5000); 
             videoview.start(); 
             } 
           }); 

가 당신에게

도움이 될 것입니다 희망이 코드를 사용하여 정의