9

내 활동에서 MediaController를 터치해야하는 VideoView가 있습니다. VideoView가 따르지 않고 컨트롤러를 빠르게 터치하면 해당 사용자가 뒤로 버튼을 누른 후 내 앱이 멈 춥니 다.MediaController를 신속하게 사용자가 터치합니다. 버그는 Nexus 4에서만 발생합니다.

setContentView(R.layout.activity_play_video_fullscreen); 
videoView = (VideoView) findViewById(R.id.video_view); 

urlString = getIntent().getStringExtra(EXTRA_URL); 
videoView.setVideoURI(Uri.parse(urlString)); 
videoView.setOnPreparedListener(new OnPreparedListener() { 
    @Override 
    public void onPrepared(MediaPlayer mp) { 
     // video ready to play - hide progress bar 
     ProgressBar pb = (ProgressBar)findViewById(R.id.progress_bar); 
     pb.setVisibility(ProgressBar.INVISIBLE); 
    } 
}); 

videoView.setOnCompletionListener(new OnCompletionListener() { 
    @Override 
    public void onCompletion(MediaPlayer mp) { 
     // video finished - terminate this activity 
     AxUtils.axLog(AxUtils.eDbgLogError, AxUtils.eDbgLogGroupDialer, String.format("PlayVideoFullsreenActivity.videoView.onCompletion(): Fullscreen video playback completed.\n")); 
     finish(); 
    } 
}); 

// install our own error handler 
videoView.setOnErrorListener(new OnErrorListener() { 
    @Override 
    public boolean onError(MediaPlayer mp, int what, int extra) { 
     AxUtils.axLog(AxUtils.eDbgLogError, AxUtils.eDbgLogGroupDialer, String.format("PlayVideoFullsreenActivity.videoView.onError(): Playback failed. what=%d(%s) extra=%d(%s)\n", 
       what, what_toString(what), extra, extra_toString(extra))); 
     String reason; 
     if (what == MediaPlayer.MEDIA_ERROR_SERVER_DIED) { 
      reason = "Server connection lost."; 
     } 
     else { 
      reason = extra_toString(extra); 
     } 
     String message = String.format("Playback Failed. %s", reason); 
     Toast.makeText(PlayVideoFullscreenActivity.this.getApplicationContext(), message, Toast.LENGTH_SHORT).show(); 
     finish(); 
     return true; 
    } 
}); 

// add playback controls 
mediaController = new MediaController(this); 
mediaController.setAnchorView(videoView.getRootView()); 
videoView.setMediaController(mediaController); 
+0

일부 코드를 게시하십시오. – Niko

+0

@Niko 내 게시물을 편집했습니다. –

+1

어떻게 앱이 작동하지 않습니까? – Niko

답변

0

준비된 리스너에서 미디어 컨트롤러를 비활성화하고 활성화하십시오. 문제를 해결해야합니다.

행운을 빈다.