تسجيل الوسائط والقيود

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

أجهزة الوسائط

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

القيود

عند الوصول إلى أجهزة الوسائط، يفضَّل تقديم معلومات مفصّلة القيود قدر الإمكان. وعلى الرغم من إمكانية فتح الكاميرا الافتراضية بقيد بسيط، فقد يتيح بث وسائط قريبًا من الأفضل للتطبيق.

يتمّ تحديد القيود المحدّدة في كائن MediaTrackConstraint، أحدهما الصوت والآخر للفيديو. السمات في هذا الكائن من النوع ConstraintLong أو ConstraintBoolean أو ConstraintDouble أو ConstraintDOMString ويمكن أن تكون إما قيمة معيّنة (مثلاً، رقم أو منطقية أو سلسلة) ونطاق (LongRange أو DoubleRange مع حد أدنى و القيمة القصوى) أو كائن بتعريف ideal أو exact. بالنسبة إلى قيمة محددة، سيحاول المتصفح اختيار أقرب شيء ممكن. بالنسبة إلى النطاق، سيتم استخدام أفضل قيمة في هذا النطاق. عندما يكون exact المحدد، فسيتم فقط بث الوسائط التي تتطابق تمامًا مع هذا القيد عاد.

بالقرب من

// Camera with a resolution as close to 640x480 as possible
{
    "video": {
        "width": 640,
        "height": 480
    }
}

النطاق

// Camera with a resolution in the range 640x480 to 1024x768
{
    "video": {
        "width": {
            "min": 640,
            "max": 1024
        },
        "height": {
            "min": 480,
            "max": 768
        }
    }
}

تامة

// Camera with the exact resolution of 1024x768
{
    "video": {
        "width": {
            "exact": 1024
        },
        "height": {
            "exact": 768
        }
    }
}

لتحديد التكوين الفعلي الذي يتضمنه مسار معين لبث وسائط، يمكننا الاتصال بـ MediaStreamTrack.getSettings() التي تُرجع يتم تطبيق MediaTrackSettings حاليًا.

من الممكن أيضًا تعديل قيود المسار من جهاز وسائط تم فتحها، من خلال طلب applyConstraints() على المسار. يتيح ذلك إعادة ضبط جهاز وسائط بدون الحاجة إلى إغلاق ساحة المشاركات الحالية.

عرض الوسائط

يشير هذا المصطلح إلى تطبيق يريد تصوير الشاشة وتسجيلها. استخدام واجهة برمجة تطبيقات الوسائط الإعلانية. الدالة getDisplayMedia() (وهي جزء من navigator.mediaDevices تكون مشابهة لـ getUserMedia() وتستخدم أغراض فتح محتوى الشاشة (أو جزء منها، مثل نافذة). تعمل MediaStream المعروضة بالطريقة نفسها التي تعمل بها عند استخدام. getUserMedia()

تختلف قيود getDisplayMedia() عن القيود المستخدمة للعادي إدخال الفيديو أو الصوت.

{
    video: {
        cursor: 'always' | 'motion' | 'never',
        displaySurface: 'application' | 'browser' | 'monitor' | 'window'
    }
}

يوضح قصاص الرمز أعلاه كيف أن القيود الخاصة على تسجيل الشاشة أعماله. لاحظ أن هذه الملفات قد لا تكون متوافقة مع كل المتصفحات التي تحتوي على والدعم الإعلامي.

مجموعات البث والأغاني

تمثّل السمة MediaStream بثًا لمحتوى الوسائط الذي يتألف من مقاطع صوتية. (MediaStreamTrack) للصوت والفيديو. يمكنك استرداد جميع المسارات من MediaStream عن طريق استدعاء MediaStream.getTracks()، مما يؤدي إلى عرض صفيف من MediaStreamTrack عناصر

MediaStreamTrack

السمة MediaStreamTrack للسمة kind إما audio أو video، للإشارة إلى نوع الوسائط التي يمثلها. يمكن كتم صوت كل مقطع صوتي من خلال زر الإيقاف/التفعيل. السمة enabled. يحتوى المسار على خاصية منطقية remote تشير إلى إذا كان مصدرها RTCPeerConnection والصادرة من تطبيق مشابه عن بُعد