"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > بث فيديو سلس باستخدام React Native

بث فيديو سلس باستخدام React Native

تم النشر بتاريخ 2024-11-04
تصفح:362

Smooth Video Streaming with React Native

بناء تجربة بث فيديو سلسة باستخدام React Native Video

في عالم اليوم الذي يتمحور حول الهاتف المحمول، يعد بث الفيديو ميزة أساسية للعديد من التطبيقات. سواء كان ذلك منصة لمشاركة الفيديو، أو تطبيقًا تعليميًا، أو شبكة اجتماعية غنية بالوسائط المتعددة، فإن توفير تجربة فيديو سلسة أمر ضروري. باستخدام React Native، وهو إطار عمل شائع لإنشاء تطبيقات الهاتف المحمول عبر الأنظمة الأساسية، أصبح دمج بث الفيديو أمرًا سهلاً مع مكتبة الفيديو التفاعلية الأصلية.

في هذه المدونة، سنتعرف على خطوات تثبيت الفيديو التفاعلي الأصلي وتكوينه واستخدامه لإنشاء تجربة بث فيديو سلسة في تطبيقات React Native.


1. التثبيت

للبدء، تحتاج إلى تثبيت مكتبة الفيديو التفاعلية الأصلية في مشروع React Native الخاص بك.

الخطوة 1: تثبيت الحزمة

أولاً، قم بتثبيت المكتبة باستخدام npm أو الغزل:

npm install react-native-video react-native-video-cache

أو

yarn add react-native-video react-native-video-cache

بالنسبة لنظام iOS، قد تحتاج إلى تثبيت البودات الضرورية:

cd ios
pod install
cd ..

الخطوة 2: الإعداد الأصلي الإضافي لنظام التشغيل iOS/Android

أ) أندرويد:

i) android/build.gradle

buildscript {
  ext {
    // Enable IMA (Interactive Media Ads) integration with ExoPlayer
    useExoplayerIMA = true

    // Enable support for RTSP (Real-Time Streaming Protocol) with ExoPlayer
    useExoplayerRtsp = true

    // Enable support for Smooth Streaming with ExoPlayer
    useExoplayerSmoothStreaming = true

    // Enable support for DASH (Dynamic Adaptive Streaming over HTTP) with ExoPlayer
    useExoplayerDash = true

    // Enable support for HLS (HTTP Live Streaming) with ExoPlayer
    useExoplayerHls = true
  }
}

allprojects {
    repositories {
        mavenLocal()
        google()
        jcenter()
         maven {
            url "$rootDir/../node_modules/react-native-video-cache/android/libs"
        }
    }
}

&&&] يمكّن هذا التكوين بروتوكولات البث المختلفة (IMA، RTSP، Smooth Streaming، DASH، HLS) في ExoPlayer ويقوم بإعداد المستودعات لتشمل محلي، وGoogle، وJCenter، ومستودع Maven مخصص لفيديو التفاعل الأصلي- مخبأ. ستؤدي كل ميزة من هذه الميزات التي تم تمكينها إلى زيادة حجم ملف APK الخاص بك، لذا قم بتمكين الميزات التي تحتاجها فقط. الميزات الممكّنة افتراضيًا هي: useExoplayerSmoothStreaming، useExoplayerDash، useExoplayerHls

ii) AndroidManifest.xml


    

تضمن المجموعة أن التطبيق يحتوي على ذاكرة كافية للتعامل مع مجموعات البيانات الكبيرة (عبر LargeHeap) ويمكنه عرض الرسومات بكفاءة (عبر HardwareAccelerated)، مما يؤدي إلى تجربة مستخدم أكثر سلاسة واستقرارًا. ومع ذلك، يجب استخدام كليهما مع الأخذ في الاعتبار أداء التطبيق والاحتياجات المحددة لوظائفه.

ب) iOS:

i) في ios/your_app/AppDelegate.mm داخل didFinishLaunchingWithOptions أضف:


#import - (BOOL) التطبيق:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.moduleName = @"your_app"; // --- يمكنك إضافة الدعائم الأولية المخصصة الخاصة بك في القاموس أدناه. [[AVAudioSession ShareInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; // --- سيتم تمريرها إلى ViewController الذي يستخدمه React Native. self.initialProps = @{}; return [super application:application didFinishLaunchingWithOptions:launchOptions]; }
    

ضمان استمرار تشغيل الصوت حتى عندما يكون التطبيق في الخلفية أو في الوضع الصامت

ii) iOS/Podfile:


... # قم بتمكين هذا للتخزين المؤقت لمقاطع الفيديو النظام الأساسي: iOS، min_ios_version_supported Prepar_react_native_project! # -- قم بتمكين هذا للتخزين المؤقت لمقاطع الفيديو $RNVideoUseVideoCaching=صحيح ... استهدف "your_app". التكوين = use_native_modules! # قم بتمكين هذا للتخزين المؤقت لمقاطع الفيديو pod 'SPTPersistentCache', :modular_headers => true; pod 'DVAssetLoaderDelegate', :modular_headers => true; ...
    

يتيح هذا التكوين التخزين المؤقت للفيديو في مشروع iOS عن طريق إضافة CocoaPods محددة (SPTPersistentCache وDVAssetLoaderDelegate) التي تتعامل مع التخزين المؤقت وتحميل الأصول. تشير العلامة $RNVideoUseVideoCaching=true إلى أن المشروع يجب أن يستخدم إمكانات التخزين المؤقت هذه. يعمل هذا الإعداد على تحسين أداء تشغيل الفيديو عن طريق تقليل الحاجة إلى إعادة جلب ملفات الفيديو.


2. الاستخدام:

استيراد الفيديو من "react-native-video"؛ استيراد ConvertToProxyURL من "react-native-video-cache"؛
import Video from 'react-native-video';
import convertToProxyURL from 'react-native-video-cache';

          

3. نصائح للتحسين

لضمان تشغيل الفيديو بسلاسة:

  • استخدم CDN: قم باستضافة مقاطع الفيديو الخاصة بك على CDN (شبكة تسليم المحتوى) للتحميل بشكل أسرع.
  • البث التكيفي: تنفيذ البث التكيفي (HLS أو DASH) لضبط جودة الفيديو بناءً على ظروف الشبكة.
  • تحميل مقاطع الفيديو مسبقًا: تحميل مقاطع الفيديو مسبقًا لتجنب التخزين المؤقت أثناء التشغيل.
  • تحسين ملفات الفيديو: ضغط ملفات الفيديو دون فقدان الجودة لتقليل أوقات التحميل.

خاتمة

تعد مكتبة الفيديو التفاعلية الأصلية أداة قوية لإضافة وظائف الفيديو إلى تطبيقات React Native الخاصة بك. بفضل خيارات التكوين الشاملة وإمكانيات التعامل مع الأحداث، يمكنك إنشاء تجربة بث فيديو سلسة ومخصصة لمستخدميك. سواء كنت بحاجة إلى مشغل أساسي أو مشغل مخصص بالكامل، فإن الفيديو التفاعلي الأصلي هو ما تحتاجه.

بيان الافراج تم نشر هذه المقالة على: https://dev.to/ajmal_hasan/smooth-video-streaming-with-react-native-105h?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3