Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK

Stream video trong ứng dụng Android

by
Difficulty:IntermediateLength:LongLanguages:

Vietnamese (Tiếng Việt) translation by Dai Phong (you can also view the original English article)

Nền tảng Android cung cấp các thư viện để bạn có thể sử dụng để stream các tập tin media như là các video từ xa, để chúng có thể được phát lại trong ứng dụng của bạn. Trong hướng dẫn này, chúng ta sẽ stream một tập tin video, hiển thị nó bằng cách sử dụng thành phần VideoView cùng với một đối tượng MediaController để cho phép người dùng điều khiển.

Chúng ta cũng sẽ tìm hiểu sơ qua quá tiến trình trình chiếu video sử dụng lớp MediaPlayer. Nếu bạn đã hoàn thành loạt bài về việc tạo ra một trình nghe nhạc cho Android, thì bạn có thể sử dụng những gì bạn đã học được trong hướng dẫn này để nâng cao nó hơn nữa. Bạn sẽ có thể để hoàn thành hướng dẫn này nếu bạn đã phát triển ít nhất một vài ứng dụng Android.

1. Tạo một ứng dụng mới

Bước 1

Bạn có thể sử dụng đoạn code trong hướng dẫn này để cải tiến ứng dụng hiện tại mà bạn đang làm việc hoặc bạn có thể tạo ra một ứng dụng mới trong Eclipse hoặc Android Studio. Tạo một dự án Android mới, đặt cho nó một cái tên theo ý bạn, cấu hình các chi tiết, và cung cấp cho nó một lớp Activity chính ban đầu và một layout.

Bước 2

Trước tiên hãy cấu hình manifest của dự án cho việc steam các tập tin đa phương tiện. Mở tập tin manifest của dự án và chuyển sang chỉnh sửa XML trong IDE của bạn. Đối với stream tập tin đa phương tiện, bạn cần truy cập internet, vì vậy hãy thêm các quyền sau bên trong phần tử manifest:

2. Thêm VideoView

Bước 1

Nền tảng Android cung cấp lớp VideoView để bạn có thể chơi các tập tin video. Hãy thêm một cái vào tập tin layout chính:

Thay đổi layout cha cho phù hợp với ứng dụng của riêng bạn nếu cần thiết. Chúng ta cung cấp cho đối tượng VideoView một thuộc tính id để chúng ta có thể tham chiếu đến sau này. Bạn có thể cần phải điều chỉnh các thuộc tính layout khác cho thiết kế của riêng bạn.

Bước 2

Bây giờ chúng ta hãy lấy một tham chiếu đến đối tượng VideoView ở trong code. Mở lớp Activity chính của ứng và bổ sung thêm các lệnh import sau:

Lớp Activity của bạn nên chứa một phương thức onCreate trong đó thiết lập content view:

Sau dòng setContentView, chúng ta lấy một tham chiếu đến đối tượng VideoView như sau, bằng cách sử dụng id mà chúng ta đã thiết lập trong layout XML:

3. Stream tập tin video

Bước 1

Bây giờ chúng ta có thể stream một tập tin video sang ứng dụng. Chuẩn bị URI cho endpoint như sau:

Bạn sẽ, tất nhiên cần phải sử dụng các địa chỉ từ xa cho tập tin video mà bạn muốn stream. Ví dụ dưới đây là một tập tin video công cộng được lưu trữ trên Internet Archive. Chúng ta phân tích chuỗi địa chỉ như là một URI để chúng ta có thể truyền nó vào đối tượng VideoView:

Bây giờ bạn chỉ cần bắt đầu phát:

Hệ điều hành Android hỗ trợ một loạt các định dạng video và tập tin đa phương tiện, với mỗi thiết bị thường hỗ trợ thêm các định dạng khác so với mặc định.

Như bạn có thể thấy trong Developer Guide, các định dạng tập tin video được hỗ trợ bao gồm 3GP, MP4, WebM, và MKV, tùy thuộc vào định dạng được sử dụng và cấp độ nền tảng mà người dùng đã cài đặt.

Các định dạng tập tin âm thanh mà bạn có thể mong đợi hỗ trợ sẵn bao gồm MP3, MID, OGG, và WAV. Bạn có thể stream các tập tin đa phương tiện trên Android thông qua RTSP, HTTP và HTTPS (từ Android 3.1).

4. Thêm thêm các điều khiển

Bước 1

Chúng ta đã cài đặt chức năng phát video, nhưng người dùng sẽ muốn và được làm quen với việc có thể kiểm soát nó. Một lần nữa, nền tảng Android cung cấp các nguồn lực để xử lý việc này bằng cách sử dụng tương tác quen thuộc thông qua các lớp MediaController.

Trong phương thức onCreate của lớp Activity, trước dòng trong đó bạn gọi start trên VideoView, hãy tạo ra một đối tượng của lớp:

Tiếp theo, thiết lập nó để sử dụng đối tượng VideoView như là liên kết của nó:

Và cuối cùng, thiết lập nó như là bộ điều khiển cho đối tượng VideoView:

Khi bạn chạy ứng dụng lúc này, người dùng sẽ có thể điều khiển việc phát video, bao gồm cả các nút nhanh chóng chuyển tiếp và tua lại, một nút play/pause, và thanh tiến trình.

Thanh tiến trình được tính toán bởi chiều dài của tập tin đa phương tiện ở bên phải và vị trí phát hiện tại ở bên trái. Cũng như việc có thể nhấp vào dọc theo thanh tiến trình để chuyển đến một vị trí trong tập tin, tình trạng stream được chỉ định sử dụng cùng một kiểu hiển thị mà người dùng đã quen từ trang web và các ứng dụng như YouTube.

Như bạn sẽ thấy khi bạn chạy ứng dụng, hành vi mặc định là để cho các điều khiển biến mất sau một khoảng thời gian, lại xuất hiện khi người dùng chạm vào màn hình. Bạn có thể cấu hình hành vi của đối tượng MediaController theo những cách khác nhau. Hãy xem loạt bài về việc tạo ra một ứng dụng nghe nhạc cho Android để có một ví dụ về cách làm điều này. Bạn cũng có thể cải tiến ứng dụng phát tập tin đa phương tiện bằng cách cài đặt các listener khác nhau để cấu hình hành vi ứng dụng của bạn.

5. Sử dụng MediaPlayer

Bước 1

Trước khi kết thúc, hãy xem qua một cách khác để stream video bằng cách sử dụng lớp MediaPlayer, vì chúng ta đã sử dụng nó trong loạt bài về việc tạo ra một máy nghe nhạc. Bạn có thể stream tập tin đa phương tiện, bao gồm cả video, đến một đối tượng MediaPlayer sử dụng một surface view. Ví dụ, bạn có thể sử dụng layout sau:

Chúng ta sẽ đề cập đến SurfaceView trong việc cài đặt lớp Activity.

Bước 2

Trong lớp Activity của bạn, thêm các interface sau:

IDE của bạn sẽ nhắc bạn thêm những phương thức chưa cài đặt này:

Chúng ta sẽ thêm surfaceCreated và phương thức onPrepared.

Bước 3

Để cài đặt việc phát, thêm các biến đối tượng sau vào trong lớp:

Trong phương thức onCreate của Activity, bạn sau đó có thể bắt khởi tạo các biến này bằng cách sử dụng đối tượng SurfaceView mà bạn đã thêm vào layout:

Bước 4

Trong phương thức surfaceCreated, thiết lập nguồn của trình phát tập tin đa phương tiện:

Cuối cùng, trong phương thức onPrepared, bắt đầu phát:

Video của bạn bây giờ sẽ chơi trong đối tượng MediaPlayer khi bạn chạy ứng dụng.

Tổng kết

Trong hướng dẫn này, chúng ta đã nêu ra những vấn đề cơ bản của việc stream video trên Android sử dụng các lớp VideoViewMediaPlayer. Bạn có thể thêm rất nhiều cải tiến cho các code mà chúng ta đã thực hiện ở đây, ví dụ, xây dựng thư viện hỗ trợ video hoặc streaming các tập tin đa phương tiện vào ứng dụng nghe nhạc mà chúng ta đã tạo ra. Bạn cũng có thể muốn kiểm tra các nguồn tài nguyên liên quan cho Android chẳng hạn như YouTube Android Player API.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.