2011-01-06 15 views
12

Làm cách nào để mở một URL tệp video từ xa từ nút bấm để phát trong MediaPlayer nội bộ mà không phải mở cửa sổ trình duyệt?Trợ giúp Android: Cách mở URL tệp video từ xa để phát trong MediaPlayer mà không phải mở cửa sổ trình duyệt?

Video phát tốt, nhưng nó luôn mở một cửa sổ trình duyệt thứ nhất gây phiền toái.

Đây là những gì tôi đang sử dụng, nhưng có thể khởi chạy trình phát đa phương tiện mà trước tiên ứng dụng không mở cửa sổ trình duyệt hay không.

Hope ai đó có thể giúp

Cảm ơn Lucy

final Button button = (Button) findViewById(R.id.play); 
    button.setOnClickListener(new Button.OnClickListener() { 
     public void onClick(View v) { 
      // Perform action on click 
      Uri uri = Uri.parse("http://domain.com/videofile.mp4"); 
      Intent intent = new Intent(Intent.ACTION_VIEW, uri); 

      startActivity(intent); 

      } 

    }); 
} 

Trả lời

10

Hãy thử thêm các loại MIME cho Intent. Ngay bây giờ, bạn đang định tuyến đến trình duyệt, thực hiện một số HTTP HEAD, xác định loại MIME, sau đó định tuyến đến ứng dụng thích hợp. Nếu bạn đặt loại MIME vào chính mình, điều đó sẽ bỏ qua bước trình duyệt.

+0

Thankyou, xin vui lòng bạn có thể chỉ cho tôi làm thế nào để mã hóa nó thành ở trên, tôi không hoàn toàn chắc chắn làm thế nào để làm điều đó, thankyou bao giờ rất nhiều, Lucy – lucy

+1

@ lucy: 'Intent intent = new Intent (Intent.ACTION_VIEW); intent.setDataAndType (uri, "..."); 'where' ... 'là loại MIME MP4 (' video/mp4', có thể) – CommonsWare

+0

@CommonsWare Tôi đã sử dụng cách này: Intent intent = new Intent (Intent. ACTION_VIEW); \t \t \t \t \t intent.setDataAndType (Uri.parse ("https://javmed-prod.s3.amazonaws.com/63351db3788f4393b49d4d701181c7c7.mp4"), "video/mp4"); \t \t \t \t \t startActivity (intent); .. và có ActivityNotFound..cũng cố gắng "video/*" ... bất kỳ ý tưởng Sir nào? – MKJParekh

21

Hãy thử điều này:

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.parse(videoPath), "video/mp4"); 
startActivity(intent); 
+1

Vì một lý do nào đó, việc tách setDataAndType() thành 2 dòng không hoạt động đối với tôi: intent.SetData (Uri.parse (videoPath)); intent.SetType ("video/mp4"); ... không phải là một vấn đề lớn, nhưng tôi nghĩ nó sẽ đề cập đến nó trong trường hợp người khác có cùng một vấn đề. –

1

Bạn cần phải đặt videoUrl và kịch câm loại (video/mp4) trên mục đích, ví dụ:

String videoUrl = "http://videosite/myvideo.mp4"; 
Intent playVideo = new Intent(Intent.ACTION_VIEW); 
playVideo.setDataAndType(Uri.parse(videoUrl), "video/mp4"); 
startActivity(playVideo); 
+0

@Brad Phát video như thế này đang hoạt động đối với tôi. Nhưng tôi có một trường hợp mà tôi muốn thêm một tiêu đề bổ sung cho truy vấn HTTP. Tôi thêm viewIntent.putExtra (Browser.EXTRA_HEADERS, bundle), nhưng chỉ thêm tiêu đề khi sử dụng setData() thay vì setDataAndType(). Ý tưởng của tôi là tôi muốn phát video nhưng để máy chủ cần ủy quyền cho tôi bằng các tiêu đề trong truy vấn http ... – Balflear

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