Phương tiện và phát trực tuyến trong phát triển di động: khái niệm, giao thức và cách hoạt động

Tác giả: IT Sectr Đã đăng: 2026-05-20 Thời gian đọc: 10 phút

Phương tiện và phát trực tuyến là một trong những năng lực chính của phát triển di động hiện đại. Theo Statista (2025), thị trường phát trực tuyến video toàn cầu sẽ vượt 100 tỷ đô la vào năm 2027. Thiết bị di động chiếm hơn 60% tổng lưu lượng truy cập của các nền tảng phát trực tuyến. Nhà phát triển cần hiểu các giao thức, trình phát, cơ chế bảo vệ nội dung và các tính năng như Picture-in-Picture. Phát trực tuyến chất lượng cao trong ứng dụng di động đòi hỏi phải thành thạo tất cả các công nghệ này.

Những điểm chính

  • Các giao thức phát trực tuyến chính — HLS (Apple) và DASH (MPEG). HLS được ưu tiên cho iOS, DASH cho Android và các giải pháp đa nền tảng.
  • ExoPlayer (Android) và AVPlayer (iOS) là các trình phát tiêu chuẩn. ExoPlayer linh hoạt hơn, AVPlayer dễ tích hợp hơn. Để phát triển đa nền tảng, có Google Cast SDK.
  • Hệ thống DRM (Widevine, FairPlay, PlayReady) bảo vệ nội dung cao cấp. Widevine là tiêu chuẩn cho Android, FairPlay cho iOS, PlayReady cho Windows/Xbox.
  • Audio Focus (Android) và Audio Session (iOS) quản lý phát âm thanh trong khi gọi điện và thông báo. Nếu không có chúng, trải nghiệm người dùng sẽ không hoàn chỉnh.
  • Picture-in-Picture và AirPlay là các tính năng bắt buộc cho ứng dụng video cao cấp. PiP cho phép xem video trong cửa sổ thu nhỏ khi thu nhỏ ứng dụng.

Giao thức HLS và DASH

HTTP Live Streaming (HLS) là giao thức phát trực tuyến trong ứng dụng di động do Apple phát triển. Nó chia video thành các phân đoạn nhỏ (thường 6–10 giây) và truyền chúng qua HTTP thông thường. Trình phát tải danh sách phát (.m3u8) và tuần tự tải các phân đoạn, điều chỉnh chất lượng theo tốc độ kết nối. HLS cung cấp khả năng phát trực tuyến đáng tin cậy trong ứng dụng di động trên tất cả các thiết bị Apple và là tiêu chuẩn thực tế cho iOS.

HLS vs DASH

DASH (Dynamic Adaptive Streaming over HTTP) là tiêu chuẩn MPEG mở để phân phối phương tiện đến ứng dụng di động. Không giống như HLS, DASH sử dụng định dạng MP4 cho các phân đoạn và tệp kê khai XML (MPD) thay vì .m3u8. DASH cung cấp nhiều quyền kiểm soát hơn đối với codec và hỗ trợ nhiều định dạng hơn. Lựa chọn giữa HLS và DASH là quyết định quan trọng khi phát triển phát trực tuyến cho thiết bị di động. So sánh giao thức được hiển thị trong bảng dưới đây.

Tham số HLS DASH
Nhà phát triểnAppleMPEG (tiêu chuẩn mở)
Định dạng danh sách phát.m3u8.mpd (XML)
Phân đoạn.ts hoặc fMP4fMP4 (mọi codec)
Hỗ trợ gốciOS, macOS, tvOSAndroid, web
Tốc độ bit thích ứngCó (avc1, mp4a)Có (mọi codec)
Độ trễ thấpLL-HLS (2–5 giây)LL-DASH (2–5 giây)

Trong thực tế, ứng dụng iOS chọn HLS — AVPlayer hoạt động gốc với nó. Đối với Android, DASH được ưa chuộng nhờ ExoPlayer. Cả hai giao thức đều phù hợp để phát trực tuyến phương tiện trên thiết bị di động. Tại IT Sectr, chúng tôi sử dụng cả hai công nghệ và khuyến nghị chọn giao thức dựa trên nền tảng mục tiêu.

Tốc độ bit thích ứng và codec

Adaptive Bitrate (ABR) là cơ chế mà trình phát tự động chọn chất lượng video dựa trên tốc độ kết nối. Luồng được mã hóa ở nhiều tốc độ bit (360p, 720p, 1080p, 4K). Trình phát chuyển đổi giữa chúng mà không bị gián đoạn. Codec: H.264 (AVC) — cơ bản, H.265 (HEVC) — hiệu quả hơn 50%, VP9 và AV1 — các lựa chọn thay thế mở cho Android.

Để giải mã phần cứng trong ứng dụng di động, việc chọn đúng codec là rất quan trọng. Hardware Decoding sử dụng GPU/bộ xử lý video của thiết bị và tiêu thụ ít pin hơn. Software Decoding chạy trên CPU — được sử dụng khi giải mã phần cứng không khả dụng. IT Sectr khuyến nghị luôn kiểm tra hỗ trợ codec qua MediaCodec (Android) hoặc AVAssetTrack (iOS) để phát lại phương tiện tối ưu trên thiết bị di động.

Trình phát: ExoPlayer và AVPlayer

ExoPlayer là trình phát phương tiện của Google dành cho Android, được tối ưu hóa để phát lại phương tiện trong ứng dụng di động. Không giống như MediaPlayer, ExoPlayer không bị ràng buộc với giải mã phần cứng và hỗ trợ các lược đồ tùy chỉnh thông qua các mô-đun mở rộng. Nó hoạt động với HLS, DASH, SmoothStreaming và RTSP. ExoPlayer là trình phát chính cho YouTube, Google TV và Android TV.

ExoPlayer vs AVPlayerViewController

AVPlayer và AVPlayerViewController là trình phát của Apple cho iOS, macOS, tvOS. AVPlayer là API cấp thấp, AVPlayerViewController là trình bao bọc UI sẵn sàng với PiP và AirPlay. Sự khác biệt chính: ExoPlayer cung cấp toàn quyền kiểm soát bộ đệm và kết xuất, AVPlayerViewController cung cấp tích hợp nhanh với mã tối thiểu. Việc chọn trình phát ảnh hưởng trực tiếp đến chất lượng phát trực tuyến trong ứng dụng di động.

kotlin
// ExoPlayer — thiết lập trình phát cơ bản trên Android
val player = ExoPlayer.Builder(this)
    .setMediaSource(ProgressiveMediaSource.Factory(DefaultHttpDataSource.Factory()))
    .build()
val mediaItem = MediaItem.fromUri("https://example.com/stream.m3u8")
player.setMediaItem(mediaItem)
player.prepare()
player.playWhenReady = true

Mã hiển thị khởi tạo tối thiểu ExoPlayer: tạo phiên bản, thiết lập mục phương tiện và bắt đầu phát lại. ExoPlayer tự động xử lý vòng đời Activity thông qua player.release() trong onStop. Đối với Android TV hoặc PiP, cần xử lý vòng đời bổ sung thông qua PlayerView — điều này đặc biệt quan trọng khi thiết lập phát trực tuyến cho ứng dụng di động.

Chuyển mã và xử lý video

Transcoding là chuyển đổi video từ định dạng này sang định dạng khác. Nó được sử dụng để tối ưu hóa luồng phương tiện cho các thiết bị di động khác nhau (ví dụ: H.264 → H.265). Trên thiết bị di động, có thể chuyển mã qua MediaCodec (Android) hoặc AVAssetExportSession (iOS). Chuyển mã tốn nhiều tài nguyên và hao pin — hãy thực hiện ở chế độ nền qua WorkManager hoặc BGTaskScheduler.

DRM: Widevine, FairPlay và PlayReady

Digital Rights Management (DRM) là hệ thống bảo vệ nội dung phương tiện khỏi sao chép trái phép. Ba công nghệ chính được sử dụng để phát trực tuyến phương tiện cao cấp trong ứng dụng di động: Widevine (Google), FairPlay (Apple) và PlayReady (Microsoft). Không có DRM, các dịch vụ cao cấp (Netflix, Spotify, Disney+) không thể phân phối nội dung.

So sánh hệ thống DRM

Widevine là tiêu chuẩn bảo vệ DRM cho Android, có ba cấp độ: L3 (mã hóa phần mềm), L2, L1 (mã hóa phần cứng, chỉ dành cho Trusted Execution Environment). FairPlay là hệ thống độc quyền của Apple, sử dụng SVP (Secure Video Pipeline) ở cấp độ chip. PlayReady là hệ thống của Microsoft, phổ biến trên các thiết bị Xbox và Windows.

Multi-DRM là cách tiếp cận sử dụng một nền tảng duy nhất để quản lý tất cả các khóa DRM. Ví dụ: EZDRM hoặc Verimatrix. Chúng cấp giấy phép Widevine, FairPlay và PlayReady thông qua một API thống nhất. Multi-DRM đặc biệt phù hợp với phương tiện cao cấp trên thiết bị di động. Tại IT Sectr, chúng tôi triển khai multi-DRM thông qua các bộ tổng hợp — điều này tiết kiệm thời gian và tiền bạc so với việc tích hợp từng DRM riêng lẻ.

Phát âm thanh: Audio Focus và Audio Session

Audio Focus (Android) là hệ thống quản lý luồng âm thanh để phát lại phương tiện trong ứng dụng di động. Khi ứng dụng của bạn yêu cầu Audio Focus, các ứng dụng khác (nhạc, podcast) sẽ tạm dừng hoặc giảm âm lượng (ducking). Không có Audio Focus, hai ứng dụng sẽ phát đồng thời, gây ra tiếng ồn.

Audio Focus trên Android

Android chia luồng âm thanh thành các loại: MUSIC, VOICE_CALL, ALARM, NOTIFICATION. Đối với trình phát phương tiện, bạn cần yêu cầu AudioManager.AUDIOFOCUS_GAIN. Khi mất tiêu điểm (cuộc gọi đến), bạn phải tạm dừng phát lại phương tiện và tiếp tục sau khi tiêu điểm trở lại. Triển khai thông qua AudioManager.OnAudioFocusChangeListener.

Audio Session trên iOS

Audio Session (iOS) tương đương với Audio Focus cho ứng dụng phương tiện trên thiết bị di động Apple. Nó được cấu hình qua AVAudioSession.sharedInstance(). Các danh mục: .playback (bắt buộc cho video), .soloAmbient (mặc định, im lặng khi khóa), .playAndRecord (để ghi âm). Để phát trực tuyến, hãy sử dụng .playback với tùy chọn .allowAirPlay.

PiP và AirPlay

Picture-in-Picture (PiP) là chế độ mà nội dung phương tiện tiếp tục phát trong một cửa sổ nổi nhỏ khi thu nhỏ ứng dụng hoặc chuyển sang màn hình khác. PiP đã trở thành tiêu chuẩn cho ứng dụng phương tiện trên thiết bị di động — iOS (từ iPadOS 13) và Android (từ Android 8.0).

PiP trên Android

Trên Android, PiP được kích hoạt qua Activity.isInPictureInPictureMode() và PictureInPictureParams.Builder. Ứng dụng phải ở chế độ đa cửa sổ. MediaSession được yêu cầu để kiểm soát phát lại phương tiện từ cửa sổ PiP. Trong tệp kê khai, hãy chỉ định android:supportsPictureInPicture="true".

AirPlay và Chromecast

AirPlay là giao thức của Apple để phát trực tuyến phương tiện đến Apple TV, HomePod và TV thông minh tương thích. Trên iOS, nó được triển khai qua AVRoutePickerView hoặc MPNowPlayingInfoCenter. Trên Android, tương đương là Google Cast SDK (Chromecast). Cả hai công nghệ đều yêu cầu cấu hình trong tệp nhị phân và hỗ trợ trong trình phát. Phát trực tuyến chất lượng cao trong ứng dụng di động là không thể nếu thiếu một trong hai.

Câu hỏi thường gặp

Cái nào tốt hơn: HLS hay DASH cho ứng dụng di động?

Đối với iOS, HLS tốt hơn — nó được AVPlayer hỗ trợ gốc. Đối với Android và ứng dụng đa nền tảng, DASH được ưa chuộng hơn vì ExoPlayer hỗ trợ DASH tốt hơn và kiểm soát bộ đệm linh hoạt hơn. Việc chọn giao thức ảnh hưởng trực tiếp đến phát trực tuyến trong ứng dụng di động.

Có bắt buộc phải sử dụng DRM trong ứng dụng phát trực tuyến không?

DRM bắt buộc chỉ khi bạn phân phối nội dung phương tiện cao cấp (phim, nhạc, khóa học). Đối với nội dung do người dùng tạo hoặc phát sóng miễn phí, không cần DRM. IT Sectr khuyến nghị bắt đầu không có DRM và chỉ thêm nó khi cần.

Sự khác biệt giữa ExoPlayer và AVPlayerViewController là gì?

ExoPlayer là trình phát phương tiện có thể tùy chỉnh cho Android với hỗ trợ DASH, HLS và SmoothStreaming. AVPlayerViewController là trình phát gốc iOS cho HLS với PiP và AirPlay. ExoPlayer cung cấp nhiều kiểm soát hơn, AVPlayerViewController yêu cầu ít mã hơn. Cả hai đều cung cấp khả năng phát lại phương tiện chất lượng cao trong ứng dụng di động.

Picture-in-Picture (PiP) là gì và cách triển khai?

PiP là chế độ mà nội dung phương tiện tiếp tục phát trong cửa sổ nhỏ khi thu nhỏ ứng dụng. Trên iOS, nó được kích hoạt qua ủy quyền AVPlayerViewController, trên Android qua PictureInPictureParams. Yêu cầu cấu hình tệp kê khai và xử lý vòng đời.

Tại sao cần Audio Focus và Audio Session?

Audio Focus (Android) và Audio Session (iOS) quản lý phát lại âm thanh đồng thời từ các nguồn khác nhau. Chúng đảm bảo ứng dụng phương tiện của bạn phản hồi chính xác với cuộc gọi, thông báo và khởi chạy các ứng dụng âm thanh khác.

Tổng kết

  • HLS là tiêu chuẩn cho iOS, DASH cho Android. Việc chọn giao thức phụ thuộc vào nền tảng mục tiêu và yêu cầu độ trễ thấp.
  • ExoPlayer cung cấp toàn quyền kiểm soát phát lại phương tiện trên Android. AVPlayerViewController cung cấp tích hợp nhanh trên iOS.
  • DRM (Widevine, FairPlay, PlayReady) bảo vệ nội dung phương tiện cao cấp khỏi vi phạm bản quyền. Multi-DRM là cách tiếp cận tiêu chuẩn cho các dịch vụ cao cấp.
  • Audio Focus (Android) và Audio Session (iOS) quản lý ngữ cảnh âm thanh của ứng dụng. Cần thiết cho ứng dụng di động có phát lại phương tiện.
  • Picture-in-Picture và AirPlay là các tính năng chính của ứng dụng phương tiện hiện đại. Triển khai yêu cầu cấu hình vòng đời và trình phát.
  • Adaptive Bitrate (ABR) tự động điều chỉnh chất lượng video theo tốc độ kết nối trên thiết bị di động. Sử dụng tác vụ nền để chuyển mã.
  • Hardware Decoding tiết kiệm pin thiết bị di động. Luôn kiểm tra hỗ trợ codec qua API hệ thống trước khi bắt đầu phát lại.

Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay

IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.

Thảo luận dự án