Mobil Geliştirmede Medya ve Akış: Nedir, Hangi Protokoller ve Nasıl Çalışır

Yazar: IT Sectr Yayınlanma: 2026-05-20 Okuma süresi: 10 dk

Medya ve akış, modern mobil geliştirmenin temel yetkinliklerinden biridir. Statista (2025)'ya göre, küresel video akış pazarı 2027 yılına kadar 100 milyar doları aşacak. Mobil cihazlar, tüm akış platformu trafiğinin %60'ından fazlasını oluşturmaktadır. Geliştiricinin protokolleri, oynatıcıları, içerik koruma mekanizmalarını ve Picture-in-Picture gibi özellikleri anlaması gerekir. Mobil uygulamalarda kaliteli akış, tüm bu teknolojilere hakim olmayı gerektirir.

Ana Noktalar

  • Ana akış protokolleri — HLS (Apple) ve DASH (MPEG). HLS iOS için, DASH Android ve çapraz platform çözümleri için tercih edilir.
  • ExoPlayer (Android) ve AVPlayer (iOS) standart oynatıcılardır. ExoPlayer daha esnektir, AVPlayer entegrasyonu daha kolaydır. Çapraz platform geliştirme için Google Cast SDK vardır.
  • DRM sistemleri (Widevine, FairPlay, PlayReady) premium içeriği korur. Widevine Android için, FairPlay iOS için, PlayReady Windows/Xbox için standarttır.
  • Audio Focus (Android) ve Audio Session (iOS), aramalar ve bildirimler sırasında ses oynatmayı yönetir. Bunlar olmadan kullanıcı deneyimi eksik kalacaktır.
  • Picture-in-Picture ve AirPlay, premium video uygulamaları için zorunlu özelliklerdir. PiP, uygulama simge durumuna küçültüldüğünde mini bir pencerede video izlemeye olanak tanır.

HLS ve DASH Protokolleri

HTTP Live Streaming (HLS), Apple tarafından geliştirilen mobil uygulamalarda akış için bir protokoldür. Videoyu küçük parçalara (genellikle 6–10 saniye) böler ve bunları normal HTTP üzerinden iletir. Oynatıcı bir çalma listesi (.m3u8) indirir ve sırayla parçaları yükleyerek kaliteyi bağlantı hızına göre uyarlar. HLS, tüm Apple cihazlarında mobil uygulamalarda güvenilir akış sağlar ve iOS için fiili standarttır.

HLS vs DASH

DASH (Dynamic Adaptive Streaming over HTTP), mobil uygulamalara medya iletimi için açık bir MPEG standardıdır. HLS'den farklı olarak DASH, parçalar için MP4 formatı ve .m3u8 yerine XML manifestosu (MPD) kullanır. DASH, codec'ler üzerinde daha fazla kontrol sağlar ve daha fazla formatı destekler. HLS ve DASH arasındaki seçim, mobil cihazlar için akış geliştirirken önemli bir karardır. Protokol karşılaştırması aşağıdaki tabloda gösterilmiştir.

Parametre HLS DASH
GeliştiriciAppleMPEG (açık standart)
Çalma listesi formatı.m3u8.mpd (XML)
Parçalar.ts veya fMP4fMP4 (herhangi bir codec)
Yerel destekiOS, macOS, tvOSAndroid, web
Uyarlanabilir bit hızıEvet (avc1, mp4a)Evet (herhangi bir codec)
Düşük gecikmeLL-HLS (2–5 sn)LL-DASH (2–5 sn)

Pratikte, iOS uygulamaları HLS'yi seçer — AVPlayer onunla yerel olarak çalışır. Android için ExoPlayer sayesinde DASH tercih edilir. Her iki protokol de mobil cihazlarda medya akışı için uygundur. IT Sectr'da her iki teknolojiyi de kullanıyoruz ve protokolü hedef platforma göre seçmenizi öneriyoruz.

Uyarlanabilir Bit Hızı ve Codec'ler

Adaptive Bitrate (ABR), oynatıcının bağlantı hızına göre otomatik olarak video kalitesini seçtiği bir mekanizmadır. Akış, birden çok bit hızında (360p, 720p, 1080p, 4K) kodlanır. Oynatıcı, duraklama olmadan aralarında geçiş yapar. Codec'ler: H.264 (AVC) — temel, H.265 (HEVC) — %50 daha verimli, VP9 ve AV1 — Android için açık alternatifler.

Mobil uygulamalarda donanım kod çözme için doğru codec'i seçmek önemlidir. Hardware Decoding, cihazın GPU/video işlemcisini kullanır ve daha az pil tüketir. Software Decoding, CPU'da çalışır — donanım kod çözme mevcut olmadığında kullanılır. IT Sectr, mobil cihazlarda optimum medya oynatma için MediaCodec (Android) veya AVAssetTrack (iOS) aracılığıyla codec desteğini her zaman kontrol etmenizi önerir.

Oynatıcılar: ExoPlayer ve AVPlayer

ExoPlayer, mobil uygulamalarda medya oynatma için optimize edilmiş, Google'ın Android için medya oynatıcısıdır. MediaPlayer'ın aksine ExoPlayer, donanım kod çözmeye bağlı değildir ve uzantı modülleri aracılığıyla özel şemaları destekler. HLS, DASH, SmoothStreaming ve RTSP ile çalışır. ExoPlayer, YouTube, Google TV ve Android TV'nin ana oynatıcısıdır.

ExoPlayer vs AVPlayerViewController

AVPlayer ve AVPlayerViewController, iOS, macOS, tvOS için Apple oynatıcılarıdır. AVPlayer düşük seviyeli bir API'dir, AVPlayerViewController ise PiP ve AirPlay ile hazır bir UI sarmalayıcısıdır. Temel farklar: ExoPlayer, arabelleğe alma ve işleme üzerinde tam kontrol sağlar, AVPlayerViewController minimum kodla hızlı entegrasyon sağlar. Oynatıcı seçimi, mobil uygulamalarda akış kalitesini doğrudan etkiler.

kotlin
// ExoPlayer — Android'de temel oynatıcı kurulumu
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

Kod, ExoPlayer'ın minimum başlatılmasını gösterir: örnek oluşturma, medya öğesi ayarlama ve oynatmayı başlatma. ExoPlayer, onStop içindeki player.release() ile Activity yaşam döngüsünü otomatik olarak yönetir. Android TV veya PiP için PlayerView aracılığıyla ek yaşam döngüsü yönetimi gerekir — bu, mobil uygulamalar için akış kurarken özellikle önemlidir.

Dönüştürme ve Video İşleme

Transcoding, videonun bir formattan diğerine dönüştürülmesidir. Farklı mobil cihazlar için medya akışlarını optimize etmek için kullanılır (örneğin, H.264 → H.265). Mobil cihazlarda dönüştürme, MediaCodec (Android) veya AVAssetExportSession (iOS) aracılığıyla mümkündür. Dönüştürme kaynak yoğundur ve pili tüketir — WorkManager veya BGTaskScheduler ile arka planda yapın.

DRM: Widevine, FairPlay ve PlayReady

Digital Rights Management (DRM), medya içeriğini yetkisiz kopyalamaya karşı koruyan sistemlerdir. Mobil uygulamalarda premium medya akışı için üç ana teknoloji kullanılır: Widevine (Google), FairPlay (Apple) ve PlayReady (Microsoft). DRM olmadan, premium hizmetler (Netflix, Spotify, Disney+) içerik dağıtamaz.

DRM Sistemi Karşılaştırması

Widevine, Android için DRM koruma standardıdır ve üç seviyede mevcuttur: L3 (yazılım şifreleme), L2, L1 (donanım şifreleme, yalnızca Trusted Execution Environment). FairPlay, Apple'ın özel sistemidir ve çip seviyesinde SVP (Secure Video Pipeline) kullanır. PlayReady, Microsoft'un sistemidir ve Xbox ile Windows cihazlarında yaygındır.

Multi-DRM, tüm DRM anahtarlarını yönetmek için tek bir platform kullandığınız bir yaklaşımdır. Örnek: EZDRM veya Verimatrix. Bunlar, birleşik bir API aracılığıyla Widevine, FairPlay ve PlayReady lisansları verir. Multi-DRM, mobil cihazlarda premium medya için özellikle önemlidir. IT Sectr'da, toplayıcılar aracılığıyla multi-DRM uyguluyoruz — bu, her DRM'yi ayrı ayrı entegre etmeye kıyasla zaman ve para tasarrufu sağlar.

Ses Oynatma: Audio Focus ve Audio Session

Audio Focus (Android), mobil uygulamalarda medya oynatma için ses akışı yönetim sistemidir. Uygulamanız Audio Focus talep ettiğinde, diğer uygulamalar (müzik, podcast'ler) duraklar veya ses seviyelerini düşürür (ducking). Audio Focus olmadan, iki uygulama aynı anda çalarak gürültü oluşturur.

Android'de Audio Focus

Android, ses akışlarını türlere ayırır: MUSIC, VOICE_CALL, ALARM, NOTIFICATION. Bir medya oynatıcı için AudioManager.AUDIOFOCUS_GAIN talep etmeniz gerekir. Odağı kaybettiğinizde (gelen arama), medya oynatmayı duraklatmalı ve odak geri döndüğünde devam ettirmelisiniz. Uygulama, AudioManager.OnAudioFocusChangeListener aracılığıyla yapılır.

iOS'ta Audio Session

Audio Session (iOS), Apple mobil cihazlarındaki medya uygulamaları için Audio Focus'un eşdeğeridir. AVAudioSession.sharedInstance() aracılığıyla yapılandırılır. Kategoriler: .playback (video için zorunlu), .soloAmbient (varsayılan, kilitlendiğinde sessiz), .playAndRecord (kayıt için). Akış için .allowAirPlay seçeneğiyle .playback kullanın.

PiP ve AirPlay

Picture-in-Picture (PiP), uygulama simge durumuna küçültüldüğünde veya başka bir ekrana geçildiğinde medya içeriğinin küçük bir hareketli pencerede oynatılmaya devam ettiği bir moddur. PiP, mobil cihazlarda medya uygulamaları için standart haline gelmiştir — iOS (iPadOS 13'ten itibaren) ve Android (Android 8.0'dan itibaren).

Android'de PiP

Android'de PiP, Activity.isInPictureInPictureMode() ve PictureInPictureParams.Builder aracılığıyla etkinleştirilir. Uygulama çoklu pencere modunda olmalıdır. PiP penceresinden medya oynatmayı kontrol etmek için MediaSession gereklidir. Manifest'te android:supportsPictureInPicture="true" belirtin.

AirPlay ve Chromecast

AirPlay, Apple TV, HomePod ve uyumlu Akıllı TV'lere medya akışı yapmak için Apple'ın protokolüdür. iOS'ta AVRoutePickerView veya MPNowPlayingInfoCenter aracılığıyla uygulanır. Android'de eşdeğeri Google Cast SDK'dır (Chromecast). Her iki teknoloji de ikili dosyada yapılandırma ve oynatıcı desteği gerektirir. Bunlardan biri olmadan mobil uygulamalarda kaliteli akış imkansızdır.

Sıkça Sorulan Sorular

Mobil uygulama için hangisi daha iyi: HLS mi DASH mi?

iOS için HLS daha iyidir — AVPlayer tarafından yerel olarak desteklenir. Android ve çapraz platform uygulamalar için DASH tercih edilir, çünkü ExoPlayer DASH için daha iyi destek ve daha esnek arabellek kontrolü sağlar. Protokol seçimi, mobil uygulamalarda akışı doğrudan etkiler.

Bir akış uygulamasında DRM kullanmak zorunlu mu?

DRM zorunludur yalnızca premium medya içeriği (film, müzik, kurs) dağıtıyorsanız. Kullanıcı tarafından oluşturulan içerik veya ücretsiz yayınlar için DRM gerekli değildir. IT Sectr, DRM olmadan başlamanızı ve yalnızca gerektiğinde eklemenizi önerir.

ExoPlayer ve AVPlayerViewController arasındaki fark nedir?

ExoPlayer, DASH, HLS ve SmoothStreaming desteğiyle Android için özelleştirilebilir bir medya oynatıcıdır. AVPlayerViewController, PiP ve AirPlay ile iOS için yerel bir oynatıcıdır. ExoPlayer daha fazla kontrol sağlar, AVPlayerViewController daha az kod gerektirir. Her ikisi de mobil uygulamalarda kaliteli medya oynatma sağlar.

Picture-in-Picture (PiP) nedir ve nasıl uygulanır?

PiP, uygulama simge durumuna küçültüldüğünde medya içeriğinin küçük bir pencerede oynatılmaya devam ettiği bir moddur. iOS'ta AVPlayerViewController temsilcisi aracılığıyla, Android'de PictureInPictureParams aracılığıyla etkinleştirilir. Manifest yapılandırması ve yaşam döngüsü yönetimi gerektirir.

Audio Focus ve Audio Session neden gereklidir?

Audio Focus (Android) ve Audio Session (iOS), farklı kaynaklardan eşzamanlı ses oynatmayı yönetir. Medya uygulamanızın aramalara, bildirimlere ve diğer ses uygulamalarının başlatılmasına doğru şekilde yanıt vermesini sağlarlar.

Özet

  • HLS iOS için standarttır, DASH Android için. Protokol seçimi hedef platforma ve düşük gecikme gereksinimlerine bağlıdır.
  • ExoPlayer, Android'de medya oynatma üzerinde tam kontrol sağlar. AVPlayerViewController, iOS'ta hızlı entegrasyon sağlar.
  • DRM (Widevine, FairPlay, PlayReady) premium medya içeriğini korsanlıktan korur. Multi-DRM, premium hizmetler için standart yaklaşımdır.
  • Audio Focus (Android) ve Audio Session (iOS), uygulamanın ses bağlamını yönetir. Medya oynatmalı mobil uygulamalar için zorunludur.
  • Picture-in-Picture ve AirPlay, modern medya uygulamalarının temel özellikleridir. Uygulama, yaşam döngüsü ve oynatıcı yapılandırması gerektirir.
  • Adaptive Bitrate (ABR), mobil cihazlarda bağlantı hızına göre video kalitesini otomatik olarak ayarlar. Dönüştürme için arka plan görevleri kullanın.
  • Hardware Decoding, mobil cihazların pilini korur. Oynatmayı başlatmadan önce her zaman sistem API'leri aracılığıyla codec desteğini kontrol edin.

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış