التخزين المؤقت لعامل الخدمة ومعدّل التشغيل وعناوين URL للصفحات التي تتضمّن مشاكل في الصوت والفيديو على متصفّح Chrome لنظام التشغيل Android

في بعض الأحيان، تكون الأشياء الجيدة لها أسماء مملة.

ومن الأمثلة على ذلك مسار الوسائط الموحّد، ويُشار إليه اختصارًا باسم 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. ننصحكم بتجربتها.

لقطة شاشة لتشغيل الفيديو مع ضبط playbackRate على 2

تتيح واجهة برمجة التطبيقات UMP عناوين URL للملفات الثنائية الكبيرة لعناصر الوسائط، ما يعني أنّه يمكنك الآن، على سبيل المثال، تشغيل فيديو تم تسجيله باستخدام MediaRecorder API في عنصر فيديو على Android:

لقطة شاشة لتشغيل فيديو تم تسجيله باستخدام واجهة برمجة التطبيقات MediaRecorder API في متصفّح Chrome على جهاز 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 API، ثم تشغيله باستخدام عنوان URL لملف Blob:

ALT_TEXT_HERE
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);
}

تم أيضًا تفعيل مسار الوسائط الموحّد لإضافات مصدر الوسائط (MSE) وإضافات الوسائط المشفّرة (EME).

وهذه خطوة أخرى نحو توحيد متصفّح Chrome على الأجهزة الجوّالة وأجهزة الكمبيوتر المكتبي. لست بحاجة إلى تغيير الرمز البرمجي، ولكن من المفترض أن يكون من الأسهل الآن إنشاء تجربة وسائط متّسقة على أجهزة الكمبيوتر المكتبي والأجهزة الجوّالة، لأنّ حِزمة الوسائط متطابقة على جميع المنصّات. تصحيح الأخطاء باستخدام "أدوات مطوّري البرامج في Chrome"؟ يستخدم الآن أسلوب المحاكاة على الأجهزة الجوّالة حِزمة الصوت والفيديو "الحقيقية".

إذا واجهت مشاكل نتيجةً لاستخدام Unified Media Pipeline، يُرجى الإبلاغ عن المشاكل في خطأ التنفيذ أو من خلال new.crbug.com.

إصدارات تجريبية

الأخطاء ذات الصلة

هناك بعض الأخطاء التي تؤثر في <video> وخدمات Worker وCache Storage API:

دعم المتصفح

  • يتم تفعيلها تلقائيًا في الإصدار 52 من Chrome والإصدارات الأحدث.