2014-04-10 2 views
7

을 표시되지 내 비디오를 재생하려면 다음 함수를 사용VideoView를 지켜 보면서 -를 MediaController 나는 현재</p> <p>... 내가의를 MediaController를 볼 수 있어야한다고 생각합니다,하지만 ... 나는 내 동영상을 터치 ​​할 때마다, 아무것도 happing하지 나는 ...이 작업을 얻을 수

private void playCachedVideo(final VideoView videoView, final Context c, File f) 
{ 
    //videoView.setZOrderOnTop(true);   
    videoView.setOnPreparedListener(new OnPreparedListener() 
    { 
     @Override 
     public void onPrepared(MediaPlayer mp) 
     { 
      mp.setOnVideoSizeChangedListener(new OnVideoSizeChangedListener() 
      { 
       @Override 
       public void onVideoSizeChanged(MediaPlayer mp, int width, int height) 
       { 
        MediaController mediaController = new MediaController(c); 
        mediaController.setMediaPlayer(videoView); 
        mediaController.setAnchorView(videoView); 
        videoView.setMediaController(mediaController); 
       } 
      }); 
     } 
    }); 
    videoView.setVideoURI(Uri.fromFile(f)); 
    videoView.start(); 
} 

동영상은 잘 재생,하지만 난 어떤를 MediaController가 표시 얻을 수 없습니다 ...

PS : 나는 DialogFragment에 선수를 보이는거야

,
+1

나와 동일한 문제가 있는데, Activity를 사용할 때는 작동하지만 DialogFragment에서는 작동하지 않습니다. –

답변

0

이 시도 :

mMediaController = new MediaController(getActivity()); 

getActivity()에 의해 c를 교체합니다.

0

컨트롤러를 VideoView에 연결 한 다음 onPrepared() 콜백에서 mediaController.show (timeInMillisec)를 호출해야합니다. 이 버튼은 videoview의 터치시 컨트롤러를 표시하고 지정된 timeInMillisec 후에 컨트롤러를 숨 깁니다.

public class VideoViewActivity extends Activity implements MediaPlayer.OnPreparedListener{ 

    private VideoView mVideoView = null; 
    MediaController mediaController = null; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.videoview_layout); 

     mVideoView = (VideoView) findViewById(R.id.VideoView); 
     mVideoView.setOnPreparedListener(this); 

     mediaController = new MediaController(mVideoView.getContext()); 
     mediaController.setMediaPlayer(mVideoView); 
     mediaController.setAnchorView(mVideoView); 
     mVideoView.setMediaController(mediaController); 
     mVideoView.setVideoPath("URL"); 
    } 

    @Override 
    public void onPrepared(MediaPlayer mp) { 
     mVideoView.start(); 
     mediaController.show(2000); 
    } 
}