2012-05-24 3 views
5

Android videoview로 동영상을 재생하려고합니다. 여기 내 코드는 다음과 같습니다.파일이 android videoview에서 코드별로 지원되는지 확인하는 방법은 무엇인가요?

super.onCreate(savedInstanceState); 
setContentView(R.layout.video); 
VideoView videoView = (VideoView) findViewById(R.id.videoView); 
videoView.setVideoURI(uri); 
videoView.requestFocus(); 
videoView.start(); 

그러나이 기능은 정상적으로 작동하지만 일부 전화는 여전히 "비디오를 재생할 수 없습니다"라는 제목의 대화 상자를 표시합니다.

제 질문은이 알림 창을 비활성화하는 방법입니다. videoView.start()를 호출하기 전에 해당 비디오 파일이 지원되는지 여부를 확인할 수 있습니까? 또는 시스템 팝업 알림 창을 비활성화하거나 비활성화 할 수 있습니까?

알림창이없는 휴대 전화에서 지원되지 않는 경우 간단하게 비디오를 건너 뛰고 싶습니다.

+0

안녕하세요,이 솔루션을 얻었습니까? – Noundla

답변

3

비디오가 재생되는지 확인하기 위해 VideoView를 시작하기 전에 setOnErrorListener를 사용했습니다.

// Restart if PROBLEM 
    myVideoView.setOnErrorListener(new MediaPlayer.OnErrorListener() { 

     public boolean onError(MediaPlayer mp, int what, int extra) { 
      // TODO Auto-generated method stub 
      Intent intent = getIntent(); 
      overridePendingTransition(0, 0); 
      intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 

      finish(); 

      overridePendingTransition(0, 0); 
      startActivity(intent); 

      return true; 
     } 

    }); 
    myVideoView.start(); 
0

이 문제의 일부를 해결하기 위해 MediaPlayer을 사용하는 또 다른 쉬운 방법을 발견했습니다. 좀하지-지원 mkv/mpg 비디오는 위의 테스트를 통과 발견하기 때문에

try { 
    MediaPlayer mp = MediaPlayer.create(this, uri); 
    mp.release(); 
} catch (Exception e) { 
    Log.e("MediaPlayer", "can NOT play: " + uri); 
} 

, 위의 코드는 VideoView에서 지원하지 않는 대부분의 비디오를 필터링 할 수 있습니다,하지만 완벽하지 않습니다.

어쨌든, 그것은 또 다른 생각입니다. 나는 그것을 여기 게시했고, 누군가 그것을 향상시킬 수 있기를 바랍니다.

관련 문제