Media at Streaming sa Mobile Development: Ano Ito, Anong mga Protocol at Paano Gumagana

May-akda: IT Sectr Nai-publish: 2026-05-20 Oras ng pagbabasa: 10 min

Ang media at streaming ay isa sa mga pangunahing kakayahan ng modernong mobile development. Ayon sa Statista (2025), ang pandaigdigang video streaming market ay lalampas sa $100 bilyon pagsapit ng 2027. Ang mga mobile device ay bumubuo ng higit sa 60% ng lahat ng trapiko ng mga streaming platform. Kailangan ng developer na maunawaan ang mga protocol, player, mekanismo ng proteksyon ng nilalaman at mga feature tulad ng Picture-in-Picture. Ang kalidad ng streaming sa mga mobile app ay nangangailangan ng kasanayan sa lahat ng mga teknolohiyang ito.

Mga Pangunahing Punto

  • Ang mga pangunahing streaming protocol — HLS (Apple) at DASH (MPEG). Ang HLS ay mas gusto para sa iOS, DASH para sa Android at cross-platform na solusyon.
  • Ang ExoPlayer (Android) at AVPlayer (iOS) ay ang mga karaniwang player. Mas flexible ang ExoPlayer, mas madaling i-integrate ang AVPlayer. Para sa cross-platform development may Google Cast SDK.
  • Pinoprotektahan ng mga DRM system (Widevine, FairPlay, PlayReady) ang premium na nilalaman. Ang Widevine ang pamantayan para sa Android, FairPlay para sa iOS, PlayReady para sa Windows/Xbox.
  • Ang Audio Focus (Android) at Audio Session (iOS) ay namamahala ng audio playback sa mga tawag at notification. Kung wala ang mga ito, ang karanasan ng gumagamit ay hindi kumpleto.
  • Ang Picture-in-Picture at AirPlay ay mga kinakailangang feature para sa premium na video app. Ang PiP ay nagbibigay-daan sa panonood ng video sa mini-window kapag pinaliit ang app.

Mga Protocol HLS at DASH

HTTP Live Streaming (HLS) ay isang protocol para sa streaming sa mga mobile app na binuo ng Apple. Hinahati nito ang video sa maliliit na segment (karaniwan ay 6–10 segundo) at ipinapadala ang mga ito sa pamamagitan ng ordinaryong HTTP. Nagda-download ang player ng playlist (.m3u8) at sunud-sunod na naglo-load ng mga segment, iniangkop ang kalidad sa bilis ng koneksyon. Ang HLS ay nagbibigay ng maaasahang streaming sa mga mobile app sa lahat ng Apple device at ito ang de facto na pamantayan para sa iOS.

HLS vs DASH

DASH (Dynamic Adaptive Streaming over HTTP) ay isang bukas na pamantayan ng MPEG para sa paghahatid ng media sa mga mobile app. Hindi tulad ng HLS, gumagamit ang DASH ng MP4 format para sa mga segment at isang XML manifest (MPD) sa halip na .m3u8. Ang DASH ay nagbibigay ng higit na kontrol sa mga codec at sumusuporta sa mas maraming format. Ang pagpili sa pagitan ng HLS at DASH ay isang mahalagang desisyon kapag nagde-develop ng streaming para sa mga mobile device. Ang paghahambing ng mga protocol ay ipinapakita sa talahanayan sa ibaba.

Parameter HLS DASH
DeveloperAppleMPEG (bukas na pamantayan)
Format ng playlist.m3u8.mpd (XML)
Mga segment.ts o fMP4fMP4 (anumang codec)
Native na suportaiOS, macOS, tvOSAndroid, web
Adaptive bitrateOo (avc1, mp4a)Oo (anumang codec)
Mababang latencyLL-HLS (2–5 seg)LL-DASH (2–5 seg)

Sa praktika, pinipili ng mga iOS app ang HLS — native itong gumagana sa AVPlayer. Para sa Android, mas gusto ang DASH dahil sa ExoPlayer. Ang parehong protocol ay angkop para sa media streaming sa mga mobile device. Sa IT Sectr, ginagamit namin ang parehong teknolohiya at inirerekomendang piliin ang protocol batay sa target na platform.

Adaptive bitrate at mga codec

Adaptive Bitrate (ABR) ay isang mekanismo kung saan awtomatikong pinipili ng player ang kalidad ng video batay sa bilis ng koneksyon. Ang stream ay naka-encode sa maraming bitrate (360p, 720p, 1080p, 4K). Ang player ay lumilipat sa pagitan ng mga ito nang walang pag-pause. Mga codec: H.264 (AVC) — pangunahing, H.265 (HEVC) — 50% mas mahusay, VP9 at AV1 — bukas na mga alternatibo para sa Android.

Para sa hardware decoding sa mga mobile app, mahalagang piliin ang tamang codec. Hardware Decoding ay gumagamit ng GPU/video processor ng device at kumokonsumo ng mas kaunting baterya. Ang Software Decoding ay tumatakbo sa CPU — ginagamit kapag hindi available ang hardware decoding. Inirerekomenda ng IT Sectr na palaging suriin ang suporta ng codec sa pamamagitan ng MediaCodec (Android) o AVAssetTrack (iOS) para sa pinakamainam na media playback sa mga mobile device.

Mga Player: ExoPlayer at AVPlayer

ExoPlayer ay isang media player mula sa Google para sa Android, na-optimize para sa media playback sa mga mobile app. Hindi tulad ng MediaPlayer, ang ExoPlayer ay hindi nakatali sa hardware decoding at sumusuporta sa custom na mga scheme sa pamamagitan ng extension modules. Ito ay gumagana sa HLS, DASH, SmoothStreaming at RTSP. Ang ExoPlayer ang pangunahing player para sa YouTube, Google TV at Android TV.

ExoPlayer vs AVPlayerViewController

AVPlayer at AVPlayerViewController ay mga Apple player para sa iOS, macOS, tvOS. Ang AVPlayer ay isang low-level na API, ang AVPlayerViewController ay isang ready-made na UI wrapper na may PiP at AirPlay. Mga pangunahing pagkakaiba: Ang ExoPlayer ay nagbibigay ng ganap na kontrol sa buffering at rendering, ang AVPlayerViewController ay nagbibigay ng mabilis na integration na may minimal na code. Ang pagpili ng player ay direktang nakakaapekto sa kalidad ng streaming sa mga mobile app.

kotlin
// ExoPlayer — pag-setup ng pangunahing player sa 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

Ipinapakita ng code ang minimal na pagsisimula ng ExoPlayer: paggawa ng instance, pag-set ng media item at pagsisimula ng playback. Awtomatikong hinahawakan ng ExoPlayer ang lifecycle ng Activity sa pamamagitan ng player.release() sa onStop. Para sa Android TV o PiP, kinakailangan ang karagdagang paghawak ng lifecycle sa pamamagitan ng PlayerView — ito ay lalong mahalaga kapag nagse-set up ng streaming para sa mga mobile app.

Transcoding at pagproseso ng video

Transcoding ay ang pag-convert ng video mula sa isang format patungo sa isa pa. Ito ay ginagamit upang i-optimize ang media stream para sa iba't ibang mobile device (hal., H.264 → H.265). Sa mga mobile device, posible ang transcoding sa pamamagitan ng MediaCodec (Android) o AVAssetExportSession (iOS). Ang transcoding ay resource-intensive at nakakaubos ng baterya — gawin ito sa background sa pamamagitan ng WorkManager o BGTaskScheduler.

DRM: Widevine, FairPlay at PlayReady

Digital Rights Management (DRM) ay mga sistema para sa pagprotekta ng media content mula sa hindi awtorisadong pagkopya. Tatlong pangunahing teknolohiya ang ginagamit para sa streaming ng premium media sa mga mobile app: Widevine (Google), FairPlay (Apple) at PlayReady (Microsoft). Kung walang DRM, hindi maaaring mamahagi ng nilalaman ang mga premium na serbisyo (Netflix, Spotify, Disney+).

Paghahambing ng mga DRM system

Widevine ang pamantayan ng proteksyon ng DRM para sa Android, available sa tatlong antas: L3 (software encryption), L2, L1 (hardware encryption, Trusted Execution Environment lang). Ang FairPlay ay eksklusibong sistema ng Apple, gumagamit ng SVP (Secure Video Pipeline) sa antas ng chip. Ang PlayReady ay sistema ng Microsoft, laganap sa mga Xbox at Windows device.

Multi-DRM ay isang diskarte kung saan gumagamit ka ng isang platform upang pamahalaan ang lahat ng DRM key. Halimbawa: EZDRM o Verimatrix. Naglalabas sila ng mga lisensya ng Widevine, FairPlay at PlayReady sa pamamagitan ng isang pinag-isang API. Ang Multi-DRM ay partikular na mahalaga para sa premium media sa mga mobile device. Sa IT Sectr, ipinapatupad namin ang multi-DRM sa pamamagitan ng mga aggregator — nakakatipid ito ng oras at pera kumpara sa pag-integrate ng bawat DRM nang hiwalay.

Audio Playback: Audio Focus at Audio Session

Audio Focus (Android) ay isang sistema ng pamamahala ng audio stream para sa media playback sa mga mobile app. Kapag humiling ang iyong app ng Audio Focus, ang ibang mga app (musika, podcast) ay magpi-pause o magbabawas ng volume (ducking). Kung walang Audio Focus, dalawang app ang magpapatugtog nang sabay, na lilikha ng ingay.

Audio Focus sa Android

Hinahati ng Android ang mga audio stream sa mga uri: MUSIC, VOICE_CALL, ALARM, NOTIFICATION. Para sa isang media player, kailangan mong humiling ng AudioManager.AUDIOFOCUS_GAIN. Kapag nawala ang focus (papasok na tawag), kailangan mong i-pause ang media playback at ipagpatuloy pagkatapos bumalik ang focus. Implementasyon sa pamamagitan ng AudioManager.OnAudioFocusChangeListener.

Audio Session sa iOS

Audio Session (iOS) ay katumbas ng Audio Focus para sa mga media app sa Apple mobile device. Ito ay na-configure sa pamamagitan ng AVAudioSession.sharedInstance(). Mga kategorya: .playback (kinakailangan para sa video), .soloAmbient (default, tahimik kapag naka-lock), .playAndRecord (para sa pag-record). Para sa streaming, gamitin ang .playback na may opsyon na .allowAirPlay.

PiP at AirPlay

Picture-in-Picture (PiP) ay isang mode kung saan ang media content ay patuloy na nagpe-play sa isang maliit na lumulutang na window kapag pinaliit ang app o nag-navigate sa ibang screen. Ang PiP ay naging pamantayan para sa mga media app sa mga mobile device — iOS (mula noong iPadOS 13) at Android (mula noong Android 8.0).

PiP sa Android

Sa Android, ang PiP ay pinagana sa pamamagitan ng Activity.isInPictureInPictureMode() at PictureInPictureParams.Builder. Ang app ay dapat nasa multi-window mode. Kinakailangan ang MediaSession upang kontrolin ang media playback mula sa PiP window. Sa manifest, tukuyin ang android:supportsPictureInPicture="true".

AirPlay at Chromecast

AirPlay ay protocol ng Apple para sa streaming ng media sa Apple TV, HomePod at mga katugmang Smart TV. Sa iOS, ito ay ipinatupad sa pamamagitan ng AVRoutePickerView o MPNowPlayingInfoCenter. Sa Android, ang katumbas ay Google Cast SDK (Chromecast). Ang parehong teknolohiya ay nangangailangan ng configuration sa binary file at suporta sa player. Ang kalidad ng streaming sa mga mobile app ay imposible nang wala ang isa sa mga ito.

Mga Madalas Itanong

Alin ang mas mahusay: HLS o DASH para sa isang mobile app?

Para sa iOS, mas mahusay ang HLS — ito ay native na sinusuportahan ng AVPlayer. Para sa Android at cross-platform na app, mas gusto ang DASH dahil ang ExoPlayer ay nagbibigay ng mas mahusay na suporta sa DASH at mas flexible na kontrol sa buffering. Ang pagpili ng protocol ay direktang nakakaapekto sa streaming sa mga mobile app.

Kailangan bang gumamit ng DRM sa isang streaming app?

Kinakailangan ang DRM kung nagpapamahagi ka ng premium media content (pelikula, musika, kurso). Para sa nilalamang ginawa ng gumagamit o mga free-to-air broadcast, hindi kailangan ang DRM. Inirerekomenda ng IT Sectr na magsimula nang walang DRM at idagdag lamang ito kapag kinakailangan.

Ano ang pagkakaiba sa pagitan ng ExoPlayer at AVPlayerViewController?

ExoPlayer ay isang nako-customize na media player para sa Android na may suporta sa DASH, HLS at SmoothStreaming. Ang AVPlayerViewController ay isang native na iOS player para sa HLS na may PiP at AirPlay. Ang ExoPlayer ay nagbibigay ng higit na kontrol, ang AVPlayerViewController ay nangangailangan ng mas kaunting code. Parehong nagbibigay ng kalidad ng media playback sa mga mobile app.

Ano ang Picture-in-Picture (PiP) at paano ito ipatupad?

PiP ay isang mode kung saan ang media content ay patuloy na nagpe-play sa isang maliit na window kapag pinaliit ang app. Sa iOS ito ay pinagana sa pamamagitan ng AVPlayerViewController delegate, sa Android sa pamamagitan ng PictureInPictureParams. Nangangailangan ng configuration ng manifest at paghawak ng lifecycle.

Bakit kailangan ang Audio Focus at Audio Session?

Audio Focus (Android) at Audio Session (iOS) ay namamahala ng sabay-sabay na audio playback mula sa iba't ibang source. Tinitiyak nila na ang iyong media app ay tumutugon nang tama sa mga tawag, notification at paglulunsad ng iba pang audio app.

Buod

  • HLS ay pamantayan para sa iOS, DASH para sa Android. Ang pagpili ng protocol ay depende sa target na platform at mga kinakailangan sa mababang latency.
  • Ang ExoPlayer ay nagbibigay ng ganap na kontrol sa media playback sa Android. Ang AVPlayerViewController ay nagbibigay ng mabilis na integration sa iOS.
  • DRM (Widevine, FairPlay, PlayReady) ay nagpoprotekta sa premium media content mula sa pandarambong. Ang Multi-DRM ay ang karaniwang diskarte para sa mga premium na serbisyo.
  • Ang Audio Focus (Android) at Audio Session (iOS) ay namamahala ng audio context ng app. Mahalaga para sa mga mobile app na may media playback.
  • Picture-in-Picture at AirPlay ay mga pangunahing feature para sa modernong media app. Ang implementasyon ay nangangailangan ng configuration ng lifecycle at player.
  • Ang Adaptive Bitrate (ABR) ay awtomatikong nag-aayos ng kalidad ng video sa bilis ng koneksyon sa mga mobile device. Gumamit ng mga background task para sa transcoding.
  • Hardware Decoding ay nakakatipid ng baterya ng mga mobile device. Palaging suriin ang suporta ng codec sa pamamagitan ng system API bago simulan ang playback.

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto