Sự khác biệt giữa MediaPlayer và VideoView trong Android là gì


95

Tôi đã tự hỏi liệu có sự khác biệt giữa chúng khi phát trực tuyến video hay không.

Tôi biết VideoViewcó thể được sử dụng để phát trực tuyến và Mediaplayerđể làm gì? Theo như tôi biết, MediaPlayercó thể làm điều tương tự như VideoViewđúng không?

Bất cứ ai có thể cho tôi câu trả lời?

Và nếu tôi muốn truyền video từ máy chủ bằng cách sử dụng RTSP sang Android, tôi nên bắt đầu với cái nào? VideoViewhoặc MediaPlayer?

Bất kì lời đề nghị nào?


Cái này không nên có trên superuser?
Quamis

13
Tôi nghĩ nó thuộc về đây. Đây không phải là một câu hỏi lập trình Android sao?
sáu

Câu trả lời:


40

Đang hỏi câu hỏi tương tự và như tôi hiểu từ những gì Mark (CommonsWare) đã khuyên về nhiều chủ đề ở đây, VideoView là một trình bao bọc (200 trăm dòng mã) cho MediaPlayer và SurfaceView để cung cấp các điều khiển nhúng.

Anh cũng vui lòng chia sẻ một số ví dụ:

https://github.com/commonsguy/cw-advandroid/blob/master/Media/Video/src/com/commonsware/android/video/VideoDemo.java

https://github.com/commonsguy/vidtry/blob/master/src/com/commonsware/android/vidtry/Player.java

và ví dụ từ android sdk http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo.html

Ngoài ra, một số người gặp sự cố khi phát video trên trình giả lập, vì vậy hãy đảm bảo kiểm tra nó trên thiết bị thực tế nếu bạn gặp sự cố


17

VideoView về cơ bản là một Chế độ xem được liên kết với MediaPlayer để giúp triển khai video trong ứng dụng của bạn dễ dàng hơn rất nhiều. Nếu bạn không thực hiện nhiều công việc tùy chỉnh, thì VideoView là một lựa chọn phù hợp.

Điều đó nói rằng, bạn cũng có thể chuyển liên kết RTSP đến hệ thống để sử dụng ứng dụng thích hợp nhất để phát video, điều này thậm chí còn dễ thực hiện hơn:

String url = "rtsp://yourrtsplink.com/blah";
Uri uri = Uri.parse(url);
startActivity(new Intent(Intent.ACTION_VIEW, uri));

Video nên được kiểm tra trên thiết bị, vì khả năng phát lại trình giả lập kém và bạn cũng nên lưu ý rằng RTSP yêu cầu phải mở thêm một cổng, cổng này bị chặn bởi một số tường lửa.


cái nào nhanh hơn?
Albert Chen


0

VideoPlayer là một trình bao bọc cho MediaPlayer và SurfaceView, việc triển khai trình phát video với VideoView dễ dàng hơn so với MediaPlayer, nếu các tệp video được lưu trữ trong bộ nhớ trong của ứng dụng, hãy sử dụng nhà cung cấp nội dung hoặc lưu trữ chúng ở dạng có thể đọc được, nếu không thì không làm việc

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.