الوسائط والبث في التطوير المحمول: ما هي، وما البروتوكولات وكيف تعمل

المؤلف: IT Sectr نُشر: 2026-05-20 وقت القراءة: 10 دق

تُعد الوسائط والبث إحدى الكفاءات الأساسية في تطوير التطبيقات المحمولة الحديثة. وفقًا لـ Statista (2025)، سيتجاوز سوق البث العالمي 100 مليار دولار بحلول عام 2027. الأجهزة المحمولة تمثل أكثر من 60% من إجمالي حركة منصات البث. يحتاج المطور إلى فهم البروتوكولات والمشغلات وآليات حماية المحتوى وميزات مثل Picture-in-Picture. يتطلب البث عالي الجودة في التطبيقات المحمولة إتقان جميع هذه التقنيات.

أهم النقاط

  • بروتوكولات البث الرئيسية — HLS (Apple) و DASH (MPEG). يُفضل HLS لنظام iOS، و DASH لنظام Android والحلول متعددة المنصات.
  • ExoPlayer (Android) و AVPlayer (iOS) — المشغلات القياسية. ExoPlayer أكثر مرونة، AVPlayer أسهل في التكامل. للتطوير عبر المنصات، يوجد Google Cast SDK.
  • أنظمة DRM (Widevine و FairPlay و PlayReady) تحمي المحتوى المتميز. Widevine هو المعيار لنظام Android، FairPlay لنظام iOS، PlayReady لنظام Windows/Xbox.
  • يدير Audio Focus (Android) و Audio Session (iOS) تشغيل الصوت أثناء المكالمات والإشعارات. بدونها، ستكون تجربة المستخدم غير مكتملة.
  • Picture-in-Picture و AirPlay — ميزات أساسية لتطبيقات الفيديو المتميزة. يتيح PiP مشاهدة الفيديو في نافذة مصغرة عند تصغير التطبيق.

بروتوكولات HLS و DASH

HTTP Live Streaming (HLS) — بروتوكول للبث في التطبيقات المحمولة طورته Apple. يقوم بتقسيم الفيديو إلى أجزاء صغيرة (عادة 6–10 ثوانٍ) وينقلها عبر HTTP العادي. يقوم المشغل بتنزيل قائمة التشغيل (.m3u8) وتحميل الأجزاء بالتسلسل، مع تكييف الجودة مع سرعة الاتصال. يوفر HLS بثًا موثوقًا في التطبيقات المحمولة على جميع أجهزة Apple وهو المعيار الفعلي لنظام iOS.

HLS مقابل DASH

DASH (Dynamic Adaptive Streaming over HTTP) — معيار MPEG مفتوح لتوصيل الوسائط إلى التطبيقات المحمولة. على عكس HLS، يستخدم DASH تنسيق MP4 للأجزاء وملف XML (MPD) بدلاً من .m3u8. يمنح DASH تحكمًا أكبر في الترميزات ويدعم المزيد من التنسيقات. يعد الاختيار بين HLS و DASH قرارًا رئيسيًا عند تطوير البث للأجهزة المحمولة. تظهر مقارنة البروتوكولات في الجدول أدناه.

المعلمة HLS DASH
المطورAppleMPEG (معيار مفتوح)
تنسيق قائمة التشغيل.m3u8.mpd (XML)
الأجزاء.ts أو fMP4fMP4 (أي ترميز)
الدعم الأصليiOS و macOS و tvOSAndroid والويب
معدل البت التكيفينعم (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 و AVPlayer

ExoPlayer — مشغل وسائط من Google لنظام Android، مُحسّن لتشغيل الوسائط في التطبيقات المحمولة. على عكس MediaPlayer، لا يرتبط ExoPlayer بفك التشفير عبر الأجهزة ويدعم مخططات مخصصة من خلال وحدات التوسيع. يعمل مع HLS و DASH و SmoothStreaming و RTSP. ExoPlayer هو المشغل الرئيسي لـ YouTube و Google TV و Android TV.

ExoPlayer مقابل AVPlayerViewController

AVPlayer و AVPlayerViewController — مشغلات Apple لأنظمة iOS و macOS و tvOS. AVPlayer هو API منخفض المستوى، AVPlayerViewController هو غلاف واجهة مستخدم جاهز مع PiP و AirPlay. الاختلافات الرئيسية: يمنح ExoPlayer تحكمًا كاملاً في التخزين المؤقت والعرض، بينما يوفر AVPlayerViewController تكاملًا سريعًا بأقل كود. يؤثر اختيار المشغل مباشرة على جودة البث في التطبيقات المحمولة.

kotlin
// 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.

DRM: Widevine و FairPlay و PlayReady

Digital Rights Management (DRM) — أنظمة حماية محتوى الوسائط من النسخ غير المصرح به. تُستخدم ثلاث تقنيات رئيسية لبث الوسائط المتميزة في التطبيقات المحمولة: Widevine (Google) و FairPlay (Apple) و PlayReady (Microsoft). بدون DRM، لا تستطيع الخدمات المتميزة (Netflix و Spotify و Disney+) توزيع المحتوى.

مقارنة أنظمة DRM

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 و Audio Session

Audio Focus (Android) — نظام إدارة تدفقات الصوت لتشغيل الوسائط في التطبيقات المحمولة. عندما يطلب تطبيقك Audio Focus، تتوقف التطبيقات الأخرى (الموسيقى والبودكاست) مؤقتًا أو تخفض مستوى الصوت (ducking). بدون Audio Focus، سيعمل تطبيقان في وقت واحد، مما يخلق ضوضاء.

Audio Focus على Android

يقسم Android تدفقات الصوت إلى أنواع: MUSIC و VOICE_CALL و ALARM و NOTIFICATION. لمشغل الوسائط، تحتاج إلى طلب AudioManager.AUDIOFOCUS_GAIN. عند فقدان التركيز (مكالمة واردة)، يجب إيقاف تشغيل الوسائط مؤقتًا واستئنافه بعد عودة التركيز. التنفيذ عبر AudioManager.OnAudioFocusChangeListener.

Audio Session على iOS

Audio Session (iOS) — المعادل لـ Audio Focus لتطبيقات الوسائط على أجهزة Apple المحمولة. يتم تكوينه عبر AVAudioSession.sharedInstance(). الفئات: .playback (إلزامي للفيديو)، .soloAmbient (افتراضي، صامت عند القفل)، .playAndRecord (للتسجيل). للبث، استخدم .playback مع خيار .allowAirPlay.

PiP و AirPlay

Picture-in-Picture (PiP) — وضع يستمر فيه محتوى الوسائط في التشغيل في نافذة عائمة صغيرة عند تصغير التطبيق أو الانتقال إلى شاشة أخرى. أصبح PiP معيارًا لتطبيقات الوسائط على الأجهزة المحمولة — iOS (منذ iPadOS 13) و Android (منذ Android 8.0).

PiP على Android

على Android، يتم تفعيل PiP عبر Activity.isInPictureInPictureMode() و PictureInPictureParams.Builder. يجب أن يكون التطبيق في وضع النوافذ المتعددة. مطلوب MediaSession للتحكم في تشغيل الوسائط من نافذة PiP. في البيان، حدد android:supportsPictureInPicture="true".

AirPlay و Chromecast

AirPlay — بروتوكول Apple لبث الوسائط إلى Apple TV و HomePod وأجهزة التلفاز الذكية المتوافقة. على iOS، يتم تنفيذه عبر AVRoutePickerView أو MPNowPlayingInfoCenter. على Android، المعادل هو Google Cast SDK (Chromecast). تتطلب كلتا التقنيتين تكوينًا في الملف الثنائي ودعمًا من المشغل. البث عالي الجودة في التطبيقات المحمولة مستحيل بدون إحداهما.

الأسئلة الشائعة

ما الأفضل: HLS أم DASH لتطبيق محمول؟

لنظام iOS، HLS أفضل — فهو مدعوم أصليًا بواسطة AVPlayer. لنظام Android والتطبيقات متعددة المنصات، يُفضل DASH، حيث يوفر ExoPlayer دعمًا أفضل لـ DASH وتحكمًا أكثر مرونة في التخزين المؤقت. يؤثر اختيار البروتوكول مباشرة على البث في التطبيقات المحمولة.

هل استخدام DRM إلزامي في تطبيق البث؟

DRM إلزامي فقط إذا كنت توزع محتوى وسائط متميزًا (أفلامًا وموسيقى ودورات). للمحتوى الذي ينشئه المستخدم أو البث المجاني، لا حاجة لـ DRM. توصي IT Sectr بالبدء بدون DRM وإضافته فقط عند الحاجة.

ما الفرق بين ExoPlayer و AVPlayerViewController؟

ExoPlayer — مشغل وسائط قابل للتخصيص لنظام Android مع دعم DASH و HLS و SmoothStreaming. AVPlayerViewController — مشغل iOS أصلي لـ HLS مع PiP و AirPlay. ExoPlayer يمنح تحكمًا أكبر، AVPlayerViewController يتطلب كودًا أقل. كلاهما يوفر تشغيل وسائط عالي الجودة في التطبيقات المحمولة.

ما هو Picture-in-Picture (PiP) وكيفية تنفيذه؟

PiP — وضع يستمر فيه محتوى الوسائط في التشغيل في نافذة صغيرة عند تصغير التطبيق. على iOS، يتم تفعيله عبر مفوض AVPlayerViewController، على Android عبر PictureInPictureParams. يتطلب تكوينًا في البيان ومعالجة دورة الحياة.

لماذا نحتاج Audio Focus و Audio Session؟

Audio Focus (Android) و Audio Session (iOS) يديران التشغيل المتزامن للصوت من مصادر مختلفة. يضمنان أن تطبيق الوسائط الخاص بك يستجيب بشكل صحيح للمكالمات والإشعارات وتشغيل تطبيقات الصوت الأخرى.

الخلاصة

  • HLS — معيار لنظام iOS، DASH — لنظام Android. يعتمد اختيار البروتوكول على المنصة المستهدفة ومتطلبات زمن الانتقال المنخفض.
  • يمنح ExoPlayer تحكمًا كاملاً في تشغيل الوسائط على Android. يوفر AVPlayerViewController تكاملًا سريعًا على iOS.
  • DRM (Widevine و FairPlay و PlayReady) يحمي محتوى الوسائط المتميز من القرصنة. Multi-DRM هو النهج القياسي للخدمات المتميزة.
  • يدير Audio Focus (Android) و Audio Session (iOS) سياق الصوت للتطبيق. أساسيان لتطبيقات المحمول التي تشغل الوسائط.
  • Picture-in-Picture و AirPlay — ميزات رئيسية لتطبيقات الوسائط الحديثة. يتطلب التنفيذ تكوين دورة الحياة والمشغل.
  • يضبط Adaptive Bitrate (ABR) جودة الفيديو تلقائيًا حسب سرعة الاتصال على الأجهزة المحمولة. استخدم المهام الخلفية لإعادة الترميز.
  • Hardware Decoding يوفر بطارية الأجهزة المحمولة. تحقق دائمًا من دعم الترميزات عبر API النظام قبل بدء التشغيل.

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع