أحيانًا تحمل الأشياء الجيدة أسماء مملة.
مثال على ذلك: Unified Media Pipeline و UMP اختصارًا.
قد يبدو ذلك بمثابة توجيه مشؤوم من الحقبة السوفيتية، ولكنه في الحقيقة خطوة مهمة نحو توفير المحتوى الصوتي والفيديوهات بشكل متّسق على عدّة منصات. سيستخدم Chrome على أجهزة Android الآن حزمة الوسائط نفسها مثل Chrome على أجهزة سطح المكتب، بدلاً من الاعتماد على تنفيذ النظام الأساسي الأساسي.
تتيح لك منصة UMP إجراء الكثير:
- تخزين الصوت والفيديو في ذاكرة التخزين المؤقت مع مشغِّلي الخدمات، حيث يتم تنفيذ تسليم الوسائط الآن مباشرةً داخل Chrome بدلاً من تمريرها إلى حزمة وسائط Android.
- استخدِم عناوين URL ذات كائن فقاعة في عناصر الصوت والفيديو.
- ضبط
playbackRate
للصوت والفيديو - قم بتمرير MediaStreams بين Web Audio وMediaRecorder.
- طوّر تطبيقات الوسائط وصيانتها بسهولة أكبر على مختلف الأجهزة، وذلك على ما يرام على أجهزة الكمبيوتر المكتبي وأجهزة Android.
استغرق تطبيق UMP بعض الأعمال الهندسية الشاقة:
- طبقة تخزين مؤقت جديدة لتحسين أداء الطاقة.
- تعديل برنامج فك ترميز فيديو جديد يستند إلى MediaCodec، وتتم استضافته في عملية وحدة معالجة الرسومات في Chrome.
- الكثير من الاختبارات والتكرار على أجهزة مختلفة.
في ما يلي عرض توضيحي للتخزين المؤقت للفيديو مع عامل خدمات:
يكون التخزين المؤقت لملف الفيديو وصورة ملصق الفيديو أمرًا بسيطًا مثل إضافة مساراتهما إلى قائمة عناوين URL للجلب المُسبَق:
<video controls poster="static/poster.jpg">
<source src="static/video.webm" type="video/webm" />
<p>This browser does not support the video element.</p>
</video>
var urlsToPrefetch = [
'static/video.webm', 'static/poster.jpg',
];
إنّ عدم القدرة على تغيير playbackRate
على Android هو خطأ قائم منذ فترة طويلة. يعمل نظام UMP على إصلاح هذه المشكلة. بالنسبة إلى العرض التوضيحي على simpl.info/video/playbackrate، تم ضبط playbackRate
على 2. ننصحكم بتجربتها.
تفعِّل تقنية UMP عناوين URL الثنائية الكبيرة لعناصر الوسائط، ما يعني أنّه يمكنك الآن تشغيل فيديو تمّ تسجيله باستخدام واجهة برمجة التطبيقات MediaRecorder API في عنصر فيديو على Android مثلاً:
إليك الرمز ذو الصلة:
var recordedBlobs = [];
mediaRecorder.ondataavailable = function(event) {
if (event.data && event.data.size > 0) {
recordedBlobs.push(event.data);
}
};
function play() {
var superBuffer = new Blob(recordedBlobs, {type: 'video/webm'});
recordedVideo.src = window.URL.createObjectURL(superBuffer);
}
بالنسبة إلى العرض التوضيحي على الرابط simpl.info/video/offline، يتم تخزين الفيديو باستخدام File APIs، ثم تشغيله باستخدام عنوان URL لسعة تخزين سحابي:
function writeToFile(fileEntry, blob) {
fileEntry.createWriter(function(fileWriter) {
fileWriter.onwriteend = function() {
readFromFile(fileEntry.fullPath);
};
fileWriter.onerror = function(e) {
log('Write failed: ' + e.toString());
};
fileWriter.write(blob);
}, handleError);
}
function readFromFile(fullPath) {
window.fileSystem.root.getFile(fullPath, {}, function(fileEntry) {
fileEntry.file(function(file) {
var reader = new FileReader();
reader.onloadend = function() {
video.src = URL.createObjectURL(new Blob([this.result]));
};
reader.readAsArrayBuffer(file);
}, handleError);
}, handleError);
}
وتم أيضًا تفعيل Unified Media Pipeline من أجل إضافات مصادر الوسائط (MSE) وإضافات الوسائط المشفرة (EME).
هذه خطوة أخرى نحو توحيد متصفح Chrome للأجهزة الجوّالة وأجهزة سطح المكتب. لست بحاجة إلى تغيير الرمز البرمجي، ولكن أصبح من الأسهل الآن إنشاء تجربة وسائط متسقة على أجهزة الكمبيوتر المكتبي والأجهزة الجوّالة، وذلك لأنّ حزمة الوسائط هي نفسها على جميع الأنظمة الأساسية. هل تريد تصحيح الأخطاء باستخدام "أدوات مطوري البرامج في Chrome"؟ تستخدم محاكاة الأجهزة الجوّالة الآن حزمة الصوت والفيديو "الحقيقية".
إذا كنت تواجه مشاكل نتيجة لـ Unified Media Pipeline، يُرجى الإبلاغ عن مشاكل بشأن خطأ في التنفيذ أو من خلال new.crbug.com.
إصدارات تجريبية
- تخزين الفيديو مؤقتًا باستخدام مشغّل خدمات
- الوسائط
playbackRate
- MediaRecorder: التشغيل باستخدام عنوان URL ذي كائن ثنائي كبير (blob)
- فيديو بلا إنترنت تم تنفيذه باستخدام File APIs
الأخطاء ذات الصلة
- مشاكل التتبُّع في "مسار الوسائط الموحّد"
- فترة تجريبية ميدانية لمنصة UMP
- MSE وEME وUnified Media Pipeline
هناك خطأان يؤثران في <video>
ومشغّلي الخدمات وواجهة برمجة تطبيقات Cache Storage:
- يفعّل "
<video>
" وضعًا: يطلب فريق العمل ولن يقبل استجابة مشغّل الخدمات المبهم - لا ينجح طلب البحث في الفيديوهات التي يتم عرضها من خلال ذاكرة التخزين المؤقت لمشغّلي الخدمات
المتصفحات المتوافقة
- يتم تفعيله تلقائيًا في الإصدار 52 من Chrome والإصدارات الأحدث.