2014-01-22 6 views
1

Есть ли способ узнать, применил ли SRC к элементу видео содержащее аудио, видео или и то, и другое? Я использую это для медиаплеера, но хочу определить, когда элемент видео должен быть видимым или когда будет отображаться спектр аудио. (Btw я хочу, чтобы добиться этого в JavaScript)Получить текущий тип воспроизведения тега HTML5

ответ

1

Вы можете проверить свойство videoWidth/videoHeight элемент видео после того, как в onloadedmetadata пожаров событий. Если он равен 0, он не имеет видеодорожки.

Webkit также поддерживает атрибуты webkitVideoDecodedByteCount и webkitAudioDecodedByteCount, но это не поможет вам в других браузерах.

И, конечно, вы всегда запросить тип файла, проверяя расширение СРКА в:

  • если (mp3 | Ог | и т.д.) -> Предположит, только аудио
  • если (mp4 | О | WebM | и т.д.) -> предположим видео
1

Как говорит TimHayes, вы можете проверить расширение файла, но это не всегда поможет вам. У вас может быть .ogg, что неоднозначно, или URL-адрес может указывать на какой-то серверный скрипт, который не раскрывает расширение файла.

Если у вас возникли сомнения, элемент <video> будет воспроизводиться как один, так что вы можете просто использовать его. Затем отметьте videoWidth после loadedmetadata пожаров (или если .readyState > 0, в случае загрузки метаданных, прежде чем вы присоедините прослушиватель событий).

Если вы не видите видеодорожки, вам нужно скрыть или, по крайней мере, сжать элемент видео. Вероятно, лучше всего писать свои собственные элементы управления, чтобы они не выглядели странно.

+0

Что касается расширений, то как я это сделал, но это не работает для таких файлов. У меня уже есть элементы управления и просто скрываю все – MarijnS95

Смежные вопросы