يتناول جزء الوسائط في 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
والصادرة من تطبيق مشابه عن بُعد