0Pricing
HTML Academy · درس

عنصر source للتنسيقات المتعددة

توفير تنسيقات بديلة باستخدام عنصر source

عنصر source للتنسيقات المتعددة درس مجاني في HTML Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في HTML Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة HTML Academy 4 دروس في المجموع.

لماذا نستخدم تنسيقات متعددة؟

تدعم المتصفحات المختلفة برامج ترميز صوت وفيديو مختلفة:

  • WebM (VP9/VP8) — Chrome وFirefox وEdge (وليس Safari)
  • MP4 (H.264) — جميع المتصفحات (دعم شامل)
  • OGG — Firefox وChrome (وليس Safari)
  • OPUS — Chrome وFirefox وEdge (وليس Safari)

يتيح لك عنصر <source> توفير تنسيقات متعددة كخيارات احتياطية.

العنصر source داخل audio

وفر تنسيقات صوت متعددة:

<audio controls>
  <!-- Browser picks the first format it supports: -->
  <source src="podcast.opus" type="audio/ogg; codecs=opus">
  <source src="podcast.ogg" type="audio/ogg; codecs=vorbis">
  <source src="podcast.mp3" type="audio/mpeg">
  <!-- Fallback text if none supported: -->
  <p>Download: <a href="podcast.mp3">podcast.mp3</a></p>
</audio>

العنصر source داخل video

وفر تنسيقات فيديو متعددة:

<video controls width="1280" height="720" poster="thumbnail.jpg">
  <source src="tutorial.webm" type="video/webm">
  <source src="tutorial.mp4" type="video/mp4">
  <p>Your browser doesn't support HTML5 video.
     <a href="tutorial.mp4">Download the video</a></p>
</video>

سمة type في source

تُخبر سمة type المتصفح بنوع MIME وبرنامج الترميز:

<!-- Full MIME type with codec parameter: -->
<source src="video.webm" type="video/webm; codecs=vp9,vorbis">
<source src="video.mp4" type="video/mp4; codecs=avc1.42E01E,mp4a.40.2">
<source src="audio.ogg" type="audio/ogg; codecs=vorbis">

<!-- Simplified (browser may need to probe): -->
<source src="video.webm" type="video/webm">
<source src="video.mp4" type="video/mp4">

كيفية عمل اختيار source

يقيّم المتصفح عناصر source بالترتيب:

  1. يقرأ سمة type في source الأول
  2. إذا كان قادرًا على تشغيل ذلك النوع، ينزّله ويستخدمه
  3. إذا لم يكن قادرًا، ينتقل إلى source التالي
  4. إذا لم يعمل أي source، يعرض المحتوى الاحتياطي

ضع التنسيق المفضل لديك أولًا (مثل WebM لتحسين الأداء في Chrome وFirefox).

سمة media في source

تتيح لك سمة media تقديم تنسيقات مختلفة لمنافذ العرض المختلفة:

<video controls>
  <!-- Mobile: smaller file -->
  <source
    src="video-480.mp4"
    type="video/mp4"
    media="(max-width: 768px)"
  >
  <!-- Desktop: full quality -->
  <source
    src="video-1080.mp4"
    type="video/mp4"
  >
</video>

ترتيب التنسيقات الموصى به

الترتيب الأمثل لعناصر source لتحقيق أقصى توافق وأفضل أداء:

<video controls>
  <!-- AV1 in WebM: best compression, modern browsers -->
  <source src="video.av1.mp4" type="video/mp4; codecs=av01">

  <!-- VP9 in WebM: Chrome/Firefox/Edge -->
  <source src="video.webm" type="video/webm">

  <!-- H.264 in MP4: universal fallback -->
  <source src="video.mp4" type="video/mp4">
</video>

توصيات تنسيقات الصوت

توصيات برامج ترميز الصوت:

  • OPUS في WebM — أفضل نسبة بين الجودة والحجم؛ Chrome وFirefox وEdge
  • AAC في MP4 — دعم شامل؛ Safari وChrome وFirefox وEdge
  • MP3 — أوسع توافق؛ استخدمه كخيار احتياطي أخير

فيديو متجاوب باستخدام srcset

بالنسبة إلى الفيديو، استخدم media في source للتكيف مع النطاق الترددي:

<video controls poster="thumbnail.jpg">
  <source
    src="video-720.webm"
    type="video/webm"
    media="(min-width: 1024px)"
  >
  <source
    src="video-360.webm"
    type="video/webm"
  >
  <source src="video-720.mp4" type="video/mp4" media="(min-width: 1024px)">
  <source src="video-360.mp4" type="video/mp4">
</video>

التحقق باستخدام canPlayType

اختبر دعم المتصفح لبرامج الترميز باستخدام JavaScript:

const video = document.createElement('video');

console.log(video.canPlayType('video/webm; codecs=vp9'));
// '' = no, 'maybe' = possibly, 'probably' = likely yes

console.log(video.canPlayType('video/mp4; codecs=avc1.42E01E'));
// 'probably' on most modern browsers

المحتوى الاحتياطي

ضمّن دائمًا محتوى احتياطيًا داخل audio/video:

<video controls width="800" height="450">
  <source src="demo.webm" type="video/webm">
  <source src="demo.mp4" type="video/mp4">

  <!-- Fallback for browsers without video support: -->
  <p>
    Your browser does not support HTML5 video.
    <a href="demo.mp4">Download the video</a> instead.
  </p>
</video>

تحقق سريع

بأي ترتيب ينبغي إدراج عناصر source؟

خلاصة: عنصر source

أساسيات عنصر source:

  • يوفر <source src type> داخل audio/video بدائل للتنسيق
  • يختار المتصفح أول source مطابق
  • ضع التنسيق الأحدث أولًا، مع MP4/AAC كخيار احتياطي شامل
  • ضمّن نصًا أو رابطًا احتياطيًا داخل audio/video بعد جميع عناصر source
  • استخدم media في source لاختيار الفيديو استنادًا إلى منفذ العرض

الأسئلة الشائعة

هل درس «عنصر source للتنسيقات المتعددة» مجاني؟

نعم — نص درس «عنصر source للتنسيقات المتعددة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة HTML Academy، انتقل إلى CoddyKit PRO. تتضمن دورة HTML Academy 4 دروس في المجموع.

ماذا ستتعلم في «عنصر source للتنسيقات المتعددة»؟

توفير تنسيقات بديلة باستخدام عنصر source تتمرن على HTML Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ HTML Academy؟

لا تُشترط خبرة سابقة. HTML Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «عنصر source للتنسيقات المتعددة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس HTML Academy هذا؟

نعم. كل درس في HTML Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. عنصر audio وsrc وcontrols وloop وautoplay
  2. عنصر video ونسبة العرض إلى الارتفاع
  3. عنصر source للتنسيقات المتعددة
  4. الترجمة باستخدام track وWebVTT
← العودة إلى HTML Academy