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

أحيانًا تحمل الأشياء الجيدة أسماء مملة.

مثال على ذلك: 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. ننصحكم بتجربتها.

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

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

لقطة شاشة للتشغيل في Chrome على جهاز Android لفيديو مسجَّل باستخدام واجهة برمجة تطبيقات MediaRecorder

إليك الرمز ذو الصلة:

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 لسعة تخزين سحابي:

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

وتم أيضًا تفعيل Unified Media Pipeline من أجل إضافات مصادر الوسائط (MSE) وإضافات الوسائط المشفرة (EME).

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

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

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

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

هناك خطأان يؤثران في <video> ومشغّلي الخدمات وواجهة برمجة تطبيقات Cache Storage:

المتصفحات المتوافقة

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