Тег source — источник медиа-данных

source элемент позволяет авторам определять многократные ресурсы альтернативных средств массовой информации для элементов СМИ. Это ничего непредставляет самостоятельно.

src признак дает адрес ресурса СМИ. Ценность должна быть действительным непустым URL, потенциально окруженным местами. Этот признак должен присутствовать.

Динамически изменение a source элемент и его признак, когда элемент уже вставлен в a video или audio элемент не будет иметь никакого эффекта. Чтобы измениться, что играет, просто используйте src признак на элементе СМИ непосредственно, возможно используя canPlayType() метод, чтобы выбрать от среди доступных ресурсов. Вообще, управление source элементы вручную после документа были разобраны, unncessarily сложный подход.

type признак дает тип ресурса СМИ, чтобы помочь пользовательскому агенту определить, может ли это играть этот ресурс СМИ прежде, чем принести его. Если определено, его ценность должна быть действительным типом ПАНТОМИМЫ. codecs параметр, который определяют определенные типы ПАНТОМИМЫ, мог бы быть необходимым, чтобы определить точно, как ресурс закодирован. [RFC4281]

Следующий список показывает некоторые примеры того, как использовать codecs= Параметр ПАНТОМИМЫ в type признак.

H.264 Принужденное основное видео профиля (главное и расширенное совместимое видео) уровень 3 и Низкая Сложность аудио AAC в контейнере MP4
<source src='video.mp4' type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
H.264 Расширенное видео профиля (совместимый с основанием) уровень 3 и Низкая Сложность аудио AAC в контейнере MP4
<source src='video.mp4' type='video/mp4; codecs="avc1.58A01E, mp4a.40.2"'>
H.264 Главный уровень 3 видео профиля и Низкая Сложность аудио AAC в контейнере MP4
<source src='video.mp4' type='video/mp4; codecs="avc1.4D401E, mp4a.40.2"'>
H.264 ‘Высоко’ представляют видео (несовместимый с главным, основанием или расширенными профилями) уровень 3 и Низкая Сложность аудио AAC в контейнере MP4
<source src='video.mp4' type='video/mp4; codecs="avc1.64001E, mp4a.40.2"'>
MPEG-4 Визуальное Простое видео Уровня 0 Профиля и Низкая Сложность аудио AAC в контейнере MP4
<source src='video.mp4' type='video/mp4; codecs="mp4v.20.8, mp4a.40.2"'>
MPEG-4 Продвинутое Простое видео Уровня 0 Профиля и Низкая Сложность аудио AAC в контейнере MP4
<source src='video.mp4' type='video/mp4; codecs="mp4v.20.240, mp4a.40.2"'>
MPEG-4 Визуальное Простое видео Уровня 0 Профиля и аудио AMR в 3GPP контейнер
<source src='video.3gp' type='video/3gpp; codecs="mp4v.20.8, samr"'>
Видео Theora и аудио Vorbis в контейнере Ogg
<source src='video.ogv' type='video/ogg; codecs="theora, vorbis"'>
Видео Theora и аудио Speex в контейнере Ogg
<source src='video.ogv' type='video/ogg; codecs="theora, speex"'>
Одно только аудио Vorbis в контейнере Ogg
<source src='audio.ogg' type='audio/ogg; codecs=vorbis'>
Одно только аудио Speex в контейнере Ogg
<source src='audio.spx' type='audio/ogg; codecs=speex'>
Одно только аудио FLAC в контейнере Ogg
<source src='audio.oga' type='audio/ogg; codecs=flac'>
Видео Dirac и аудио Vorbis в контейнере Ogg
<source src='video.ogv' type='video/ogg; codecs="dirac, vorbis"'>

media признак дает намеченный тип носителя ресурса СМИ, чтобы помочь пользовательскому агенту определить, полезен ли этот ресурс СМИ для пользователя прежде, чем принести его. Его ценность должна быть действительным вопросом СМИ.

Неплатеж, если media признак опущен,»all«, означая, что по умолчанию ресурс СМИ подходит для всех СМИ.

Если a source элемент вставлен как ребенок элемента СМИ, который имеет нет src признак и чей networkState имеет ценность NETWORK_EMPTY, пользовательский агент должен призвать алгоритм выбора ресурса элемента СМИ.

Признаки IDL srctype, и media должен отразить соответствующие признаки содержания того же самого имени.

Если автор не уверен, будут ли пользовательские агенты все в состоянии отдать ресурсы СМИ, если, автор может слушать error случай на последнемsource элемент и более аккуратное поведение отступления:

<script>
 function fallback(video) {
   // replace <video> with its contents
   while (video.hasChildNodes()) {
     if (video.firstChild instanceof HTMLSourceElement)
       video.removeChild(video.firstChild);
     else
       video.parentNode.insertBefore(video.firstChild, video);
   }
   video.parentNode.removeChild(video);
 }
</script>
<video controls autoplay>
 <source src='video.mp4' type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
 <source src='video.ogv' type='video/ogg; codecs="theora, vorbis"'
         onerror="fallback(parentNode)">
 ...
</video>