Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Проверка поддерживается ли видео проигрываетелем <video> (https://javascript.ru/forum/events/57238-proverka-podderzhivaetsya-li-video-proigryvaetelem-video.html)

CraftLawrence 26.07.2015 00:37

Проверка поддерживается ли видео проигрываетелем <video>
 
Есть плеер вида.
<video id="videoPlayer" poster="/images/poster.png">
	<source id="source" src="/video/movie.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
</video>
Можно ли перед запуском видео сделать проверку, подойдут ли указанные кодеки под данный видеофайл?

KosBeg 26.07.2015 11:25

Писал по памяти, могут быть ошибки)))
var elem = document.createElement('video'),
support_mp4_codec = !!elem.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/, '');
alert(support_mp4_codec);


UPD: странно... проверка правильная(я проверил), но у меня выдает "false"... FireFox 39

CraftLawrence 26.07.2015 14:31

Цитата:

Сообщение от KosBeg (Сообщение 381550)
Писал по памяти, могут быть ошибки)))
var elem = document.createElement('video'),
support_mp4_codec = !!elem.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/, '');
alert(support_mp4_codec);


UPD: странно... проверка правильная(я проверил), но у меня выдает "false"... FireFox 39

Возвращает true даже если видео не поддерживается..

CraftLawrence 26.07.2015 15:21

Цитата:

Сообщение от KosBeg (Сообщение 381550)
UPD: странно... проверка правильная(я проверил), но у меня выдает "false"... FireFox 39

Попробовал на FireFox 39, то же самое =/
Вот информация о видео, которое запускаю, и выдает true, хотя проигрыватель не может его воспроизвести:

General
Complete name               : D:\Downloads\MMFD.S03E01.rus.ApofysTeam.avi
Format                      : AVI
Format/Info                 : Audio Video Interleave
File size                   : 375 MiB
Duration                    : 46mn 31s
Overall bit rate            : 1 127 Kbps
Writing application         : Lavf53.18.0
Writing library             : VirtualDub build 34703/release

Video
ID                          : 0
Format                      : xvid
Codec ID                    : xvid
Duration                    : 46mn 31s
Bit rate                    : 925 Kbps
Width                       : 640 pixels
Height                      : 360 pixels
Display aspect ratio        : 16:9
Frame rate                  : 24.000 fps
Bits/(Pixel*Frame)          : 0.167
Stream size                 : 308 MiB (82%)

Audio
ID                          : 1
Format                      : MPEG Audio
Format version              : Version 1
Format profile              : Layer 3
Mode                        : Joint stereo
Mode extension              : MS Stereo
Codec ID                    : 55
Codec ID/Hint               : MP3
Duration                    : 46mn 31s
Bit rate mode               : Constant
Bit rate                    : 192 Kbps
Channel(s)                  : 2 channels
Sampling rate               : 44.1 KHz
Compression mode            : Lossy
Stream size                 : 63.9 MiB (17%)
Alignment                   : Split accross interleaves
Interleave, duration        : 42 ms (1.00 video frame)
Interleave, preload duratio : 500 ms

CraftLawrence 28.07.2015 04:05

Все еще актуально..
Ума не приложу, как это реализовать.

Или, как альтернативу, как сделать обработчик ошибки при вылете плеера, когда тот не может открыть видео? Чтобы ему можно было передать другую ссылку и работать уже с ней. А то после вылета джаваскрипт отмирает и нужно перезагружать страничку.

Decode 29.07.2015 00:08

Цитата:

Сообщение от KosBeg
support_mp4_codec = !!elem.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/, '');

Для чего здесь replace? Если метод canPlayType возвращает одну из трех строк: "", "maybe" или "probably".

Может так?
support_mp4_codec = !!elem.canPlayType('video/mp4; codecs="avc1.42E01E"');

KosBeg 29.07.2015 13:58

Цитата:

Сообщение от Decode
Для чего здесь replace? Если метод canPlayType возвращает одну из трех строк: "", "maybe" или "probably".

код написал по пямяти с modernizr, проверил - там все именно так


Часовой пояс GMT +3, время: 23:57.