2012-05-24 38 views
5

Tôi đang cố gắng phát video bằng videoview của Android. Đây là mã của tôi:Cách kiểm tra xem tệp có được hỗ trợ bởi videoview android bằng mã không?

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

Điều này làm việc tốt, tuy nhiên một số điện thoại vẫn hiển thị hộp thoại có tiêu đề "Không thể phát video".

Câu hỏi của tôi là cách tắt cửa sổ thông báo này? Ý tôi là, tôi có thể kiểm tra xem tệp video có được hỗ trợ hay không trước khi gọi videoView.start()? Hoặc tôi có thể vô hiệu hóa hoặc ngăn chặn việc gọi cửa sổ thông báo bật lên hệ thống không?

Tôi muốn bỏ qua video nếu không được điện thoại hỗ trợ mà không có cửa sổ thông báo.

+0

Xin chào, Bạn đã nhận được giải pháp cho điều này chưa? – Noundla

Trả lời

3

Tôi đã sử dụng setOnErrorListener trước khi bạn bắt đầu VideoView để kiểm tra xem video có phát hay không.

// 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

Tôi tìm thấy một cách dễ dàng khác khi sử dụng MediaPlayer để giải quyết một phần vấn đề này.

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

Đoạn mã trên có thể lọc ra hầu hết các video mà không được hỗ trợ bởi VideoView, nhưng nó không phải là hoàn hảo, vì tôi tìm thấy một số không hỗ trợ mkv/mpg video cũng vượt qua thử nghiệm trên.

Dù sao, đó là một dòng suy nghĩ khác. Tôi đăng nó ở đây, và hy vọng ai đó có thể cải thiện nó.

Các vấn đề liên quan