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
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.
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 |
|---|---|---|
| Developer | Apple | MPEG (bukas na pamantayan) |
| Format ng playlist | .m3u8 | .mpd (XML) |
| Mga segment | .ts o fMP4 | fMP4 (anumang codec) |
| Native na suporta | iOS, macOS, tvOS | Android, web |
| Adaptive bitrate | Oo (avc1, mp4a) | Oo (anumang codec) |
| Mababang latency | LL-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 (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.
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.
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.
// 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 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.
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+).
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 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.
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 (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.
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).
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 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
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.
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.
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.
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.
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
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.