تُعد الوسائط والبث إحدى الكفاءات الأساسية في تطوير التطبيقات المحمولة الحديثة. وفقًا لـ Statista (2025)، سيتجاوز سوق البث العالمي 100 مليار دولار بحلول عام 2027. الأجهزة المحمولة تمثل أكثر من 60% من إجمالي حركة منصات البث. يحتاج المطور إلى فهم البروتوكولات والمشغلات وآليات حماية المحتوى وميزات مثل Picture-in-Picture. يتطلب البث عالي الجودة في التطبيقات المحمولة إتقان جميع هذه التقنيات.
أهم النقاط
HTTP Live Streaming (HLS) — بروتوكول للبث في التطبيقات المحمولة طورته Apple. يقوم بتقسيم الفيديو إلى أجزاء صغيرة (عادة 6–10 ثوانٍ) وينقلها عبر HTTP العادي. يقوم المشغل بتنزيل قائمة التشغيل (.m3u8) وتحميل الأجزاء بالتسلسل، مع تكييف الجودة مع سرعة الاتصال. يوفر HLS بثًا موثوقًا في التطبيقات المحمولة على جميع أجهزة Apple وهو المعيار الفعلي لنظام iOS.
DASH (Dynamic Adaptive Streaming over HTTP) — معيار MPEG مفتوح لتوصيل الوسائط إلى التطبيقات المحمولة. على عكس HLS، يستخدم DASH تنسيق MP4 للأجزاء وملف XML (MPD) بدلاً من .m3u8. يمنح DASH تحكمًا أكبر في الترميزات ويدعم المزيد من التنسيقات. يعد الاختيار بين HLS و DASH قرارًا رئيسيًا عند تطوير البث للأجهزة المحمولة. تظهر مقارنة البروتوكولات في الجدول أدناه.
| المعلمة | HLS | DASH |
|---|---|---|
| المطور | Apple | MPEG (معيار مفتوح) |
| تنسيق قائمة التشغيل | .m3u8 | .mpd (XML) |
| الأجزاء | .ts أو fMP4 | fMP4 (أي ترميز) |
| الدعم الأصلي | iOS و macOS و tvOS | Android والويب |
| معدل البت التكيفي | نعم (avc1, mp4a) | نعم (أي ترميز) |
| زمن انتقال منخفض | LL-HLS (2–5 ث) | LL-DASH (2–5 ث) |
من الناحية العملية، تختار تطبيقات iOS HLS — حيث يعمل AVPlayer معه بشكل أصلي. لنظام Android، يُفضل DASH بفضل ExoPlayer. كلا البروتوكولين مناسبان لبث الوسائط على الأجهزة المحمولة. في IT Sectr، نستخدم كلتا التقنيتين ونوصي باختيار البروتوكول بناءً على المنصة المستهدفة.
Adaptive Bitrate (ABR) — آلية يختار بها المشغل جودة الفيديو تلقائيًا بناءً على سرعة الاتصال. يتم ترميز البث بعدة معدلات بت (360p و 720p و 1080p و 4K). ينتقل المشغل بينها دون توقف. الترميزات: H.264 (AVC) — أساسي، H.265 (HEVC) — أكثر كفاءة بنسبة 50%، VP9 و AV1 — بدائل مفتوحة لنظام Android.
لفك التشفير عبر الأجهزة في التطبيقات المحمولة، من المهم اختيار الترميز الصحيح. Hardware Decoding يستخدم معالج GPU/فيديو الجهاز ويستهلك بطارية أقل. يعمل Software Decoding على المعالج CPU — ويُستخدم عندما لا يكون فك التشفير عبر الأجهزة متاحًا. توصي IT Sectr بالتحقق دائمًا من دعم الترميزات عبر MediaCodec (Android) أو AVAssetTrack (iOS) للحصول على تشغيل أمثل للوسائط على الأجهزة المحمولة.
ExoPlayer — مشغل وسائط من Google لنظام Android، مُحسّن لتشغيل الوسائط في التطبيقات المحمولة. على عكس MediaPlayer، لا يرتبط ExoPlayer بفك التشفير عبر الأجهزة ويدعم مخططات مخصصة من خلال وحدات التوسيع. يعمل مع HLS و DASH و SmoothStreaming و RTSP. ExoPlayer هو المشغل الرئيسي لـ YouTube و Google TV و Android TV.
AVPlayer و AVPlayerViewController — مشغلات Apple لأنظمة iOS و macOS و tvOS. AVPlayer هو API منخفض المستوى، AVPlayerViewController هو غلاف واجهة مستخدم جاهز مع PiP و AirPlay. الاختلافات الرئيسية: يمنح ExoPlayer تحكمًا كاملاً في التخزين المؤقت والعرض، بينما يوفر AVPlayerViewController تكاملًا سريعًا بأقل كود. يؤثر اختيار المشغل مباشرة على جودة البث في التطبيقات المحمولة.
// ExoPlayer — إعداد مشغل أساسي على 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
يظهر الكود التهيئة الأساسية لـ ExoPlayer: إنشاء مثيل، تعيين عنصر الوسائط، وبدء التشغيل. يعالج ExoPlayer دورة حياة Activity تلقائيًا من خلال player.release() في onStop. لتلفزيون Android أو PiP، يلزم معالجة إضافية لدورة الحياة عبر PlayerView — وهذا مهم بشكل خاص عند إعداد البث للتطبيقات المحمولة.
Transcoding — تحويل الفيديو من تنسيق إلى آخر. يُستخدم لتحسين تدفقات الوسائط لتناسب الأجهزة المحمولة المختلفة (مثل H.264 → H.265). على الأجهزة المحمولة، يمكن إجراء إعادة الترميز عبر MediaCodec (Android) أو AVAssetExportSession (iOS). تستهلك إعادة الترميز الكثير من الموارد وتستنزف البطارية — قم بها في الخلفية باستخدام WorkManager أو BGTaskScheduler.
Digital Rights Management (DRM) — أنظمة حماية محتوى الوسائط من النسخ غير المصرح به. تُستخدم ثلاث تقنيات رئيسية لبث الوسائط المتميزة في التطبيقات المحمولة: Widevine (Google) و FairPlay (Apple) و PlayReady (Microsoft). بدون DRM، لا تستطيع الخدمات المتميزة (Netflix و Spotify و Disney+) توزيع المحتوى.
Widevine — معيار حماية DRM لنظام Android، ويتوفر بثلاثة مستويات: L3 (تشفير برمجي)، L2، L1 (تشفير عبر الأجهزة، فقط لبيئة التنفيذ الموثوقة). FairPlay — نظام Apple الحصري، يستخدم SVP (خط أنابيب الفيديو الآمن) على مستوى الشريحة. PlayReady — نظام Microsoft، منتشر على أجهزة Xbox و Windows.
Multi-DRM — نهج تستخدم فيه منصة واحدة لإدارة جميع مفاتيح DRM. مثال: EZDRM أو Verimatrix. تصدر تراخيص Widevine و FairPlay و PlayReady من خلال API موحد. Multi-DRM مهم بشكل خاص للوسائط المتميزة على الأجهزة المحمولة. في IT Sectr، ننفذ multi-DRM من خلال مجمعين — وهذا يوفر الوقت والمال مقارنة بتكامل كل DRM على حدة.
Audio Focus (Android) — نظام إدارة تدفقات الصوت لتشغيل الوسائط في التطبيقات المحمولة. عندما يطلب تطبيقك Audio Focus، تتوقف التطبيقات الأخرى (الموسيقى والبودكاست) مؤقتًا أو تخفض مستوى الصوت (ducking). بدون Audio Focus، سيعمل تطبيقان في وقت واحد، مما يخلق ضوضاء.
يقسم Android تدفقات الصوت إلى أنواع: MUSIC و VOICE_CALL و ALARM و NOTIFICATION. لمشغل الوسائط، تحتاج إلى طلب AudioManager.AUDIOFOCUS_GAIN. عند فقدان التركيز (مكالمة واردة)، يجب إيقاف تشغيل الوسائط مؤقتًا واستئنافه بعد عودة التركيز. التنفيذ عبر AudioManager.OnAudioFocusChangeListener.
Audio Session (iOS) — المعادل لـ Audio Focus لتطبيقات الوسائط على أجهزة Apple المحمولة. يتم تكوينه عبر AVAudioSession.sharedInstance(). الفئات: .playback (إلزامي للفيديو)، .soloAmbient (افتراضي، صامت عند القفل)، .playAndRecord (للتسجيل). للبث، استخدم .playback مع خيار .allowAirPlay.
Picture-in-Picture (PiP) — وضع يستمر فيه محتوى الوسائط في التشغيل في نافذة عائمة صغيرة عند تصغير التطبيق أو الانتقال إلى شاشة أخرى. أصبح PiP معيارًا لتطبيقات الوسائط على الأجهزة المحمولة — iOS (منذ iPadOS 13) و Android (منذ Android 8.0).
على Android، يتم تفعيل PiP عبر Activity.isInPictureInPictureMode() و PictureInPictureParams.Builder. يجب أن يكون التطبيق في وضع النوافذ المتعددة. مطلوب MediaSession للتحكم في تشغيل الوسائط من نافذة PiP. في البيان، حدد android:supportsPictureInPicture="true".
AirPlay — بروتوكول Apple لبث الوسائط إلى Apple TV و HomePod وأجهزة التلفاز الذكية المتوافقة. على iOS، يتم تنفيذه عبر AVRoutePickerView أو MPNowPlayingInfoCenter. على Android، المعادل هو Google Cast SDK (Chromecast). تتطلب كلتا التقنيتين تكوينًا في الملف الثنائي ودعمًا من المشغل. البث عالي الجودة في التطبيقات المحمولة مستحيل بدون إحداهما.
الأسئلة الشائعة
لنظام iOS، HLS أفضل — فهو مدعوم أصليًا بواسطة AVPlayer. لنظام Android والتطبيقات متعددة المنصات، يُفضل DASH، حيث يوفر ExoPlayer دعمًا أفضل لـ DASH وتحكمًا أكثر مرونة في التخزين المؤقت. يؤثر اختيار البروتوكول مباشرة على البث في التطبيقات المحمولة.
DRM إلزامي فقط إذا كنت توزع محتوى وسائط متميزًا (أفلامًا وموسيقى ودورات). للمحتوى الذي ينشئه المستخدم أو البث المجاني، لا حاجة لـ DRM. توصي IT Sectr بالبدء بدون DRM وإضافته فقط عند الحاجة.
ExoPlayer — مشغل وسائط قابل للتخصيص لنظام Android مع دعم DASH و HLS و SmoothStreaming. AVPlayerViewController — مشغل iOS أصلي لـ HLS مع PiP و AirPlay. ExoPlayer يمنح تحكمًا أكبر، AVPlayerViewController يتطلب كودًا أقل. كلاهما يوفر تشغيل وسائط عالي الجودة في التطبيقات المحمولة.
PiP — وضع يستمر فيه محتوى الوسائط في التشغيل في نافذة صغيرة عند تصغير التطبيق. على iOS، يتم تفعيله عبر مفوض AVPlayerViewController، على Android عبر PictureInPictureParams. يتطلب تكوينًا في البيان ومعالجة دورة الحياة.
Audio Focus (Android) و Audio Session (iOS) يديران التشغيل المتزامن للصوت من مصادر مختلفة. يضمنان أن تطبيق الوسائط الخاص بك يستجيب بشكل صحيح للمكالمات والإشعارات وتشغيل تطبيقات الصوت الأخرى.
الخلاصة
سنقوم بتطوير تطبيق جوال جاهز
تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.