← Форум / Рецепты / Проверка наличия Flash и HTML5
Пример для проверки браузера на стороне клиента и показа ему версии HTML5 для мобильных платформ (IOS, Android), либо Flash.
Если флеш не установлен, можно показать просьбу установить
<div id="videoplayer"></div>
<script type="text/javascript">
var ua = navigator.userAgent.toLowerCase();
var flashInstalled = false;
if (typeof(navigator.plugins)!="undefined"&&typeof(navigator.plugins["Shockwave Flash"])=="object"){
flashInstalled = true;
} else if (typeof window.ActiveXObject != "undefined") {
try {
if (new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) {
flashInstalled = true;
}
} catch(e) {};
};
if(ua.indexOf("iphone") != -1 || ua.indexOf("ipad") != -1 || ua.indexOf("android") != -1 || ua.indexOf("windows phone") != -1 || ua.indexOf("blackberry") != -1){
//код HTML5
}else{
if(!flashInstalled){
//просим установить Flash
document.getElementById("videoplayer").innerHTML="<a href=http://www.adobe.com/go/getflashplayer>Требуется обновить Flash-плеер</a>";
}else{
//код Flash (SWFObject)
}
}</script>
Я никак что-то не пойму. Для корректной работы и во флеш и в режиме хтмл5 (для гаджетов в основном), необходимо в обязательном порядке делать такую проверку и выбирать какую версию подгружать. А нельзя сделать это изначально автоматически? Я вот аудио-плеер прикручивал к одному своему проекту (128kbps.ru), там управление воспроизведением полностью на яваскриптовом апи. В итоге оказалось, что работает и с флешем и с хтмл5, само определяется и работает. А тут нельзя сделать что-либо аналогичное? Непонятно…
Всё, если у меня чайника из чайников заработало, значит и у вас заработает. Если что, вот пример (сайт тестовый, поэтому вы там на контент не смотрите): ссылка Да, и проживет он там только до конца октября 2012.
Так уже не работает, конечно. Я ж писала до конца октября там будет сайт. Если коротко, то скрипт правильный (который наверху) проблемы, которые появлялись были в том, что работает этот скрипт только с самыми простыми стилями. Подбирайте стили для плеера и все получится.
Здравствуйте. Подскажите пожалуйста, можно ли такую проверку вставить в форум phpbb3? В виде Bbcode? Мне нужно не для пользователей, а для админа. Заранее благодарен.
а почему html5 версия показывается только для IOS, Android?
все современные браузеры поддерживают html5.
как проверить поддержку именно этих стандартов??
Положите кто нибудь правильное решение сюда, а то всё какие то догадки и неработающие ссылки с примерами.
Я попробовал вставить в тот код, что дал автор, два плеера, но на сайте появилось тоже 2 плеера и в JS выскачила ошибка.
"… и переделал немного данные плееров. Всё заработало!"
Очень ценный пост. Примите мои искренние поздравления! Пойду и себе немного переделаю данные, а то не пашет.
Ну вы даете! Сначала приводите в нижний регистр значение userAgent, а потом ищите в нем "Windows Phone", написанное в двух регистрах.. М-да, с этим примером у вас явно проблемы.
У меня во всех настольных браузерах поддерживающих HTML5 пишет "Требуется установить Flash-плеер".
Код взял ссылка
Кто-нибудь может привести пример кода, чтоб все работало? Пожалуйста.
Вот такое прописать. А подскажите почему не работает плейлист от ютуба в HTML5 плеере? Флеш работает, а припереходе на андроиде не работает ошибку выдает в окошке
столкнулся с аналогичной проблемой пример в заголовке темы на компах работает хорошо, в мобильных устройствах ios,wp,adroid не отображается сам плеер, хотя место под контейнер пустует. ссылки на видео шифруются, файлы видео кодировал в mp4 H264
Уважаемые разработчики, прошу оказать содействие, поскольку ваш плеер мне нравится и приобрел PRO версию
тоже не понимаю, почему разработчики плеера не сделают до сих пор встроенную внятную функцию для определения есть ли флэш у юзера.
перерыл много вариантов, остановился на как мне кажется самом простом. зачем нам проверять какой девайс или какой браузер у пользователя? сегодня 99% мобильных девайсов поддерживают HTML5, а если это комп, то 99% что он поддерживает флэш.
поэтому пробуем запустить сначала флэш плеер, если не получилось, то запускаем html5 плеер:
// функция выполняется после попытки embedSWF.
function callbackFn(e) {
// если неудачно, то запускаем html5
if (!e.success) new Uppod({m:"audio",uid:"track"+i+"Player",file:"getfile.php?target="+song_id,st:"uppodaudio7",auto:"play"});
}
new swfobject.embedSWF("player/uppod.swf", "track"+i+"Player", "300", "24", "10.0.0", false, flashvars, params, att, callbackFn);
Проверил пример, который в шапке. У меня в Internet Explorer он не заработал. Тестировал на IE8, ну и IE76 тоже самое. Пишет ошибка на странице "swfobject" определение отсутствует. Строчка с new swfobject.embedSWF….
victorsmail писал: "…поэтому пробуем запустить сначала флэш плеер, если не получилось, то запускаем html5 плеер…"
По моему, настали времена когда надо делать наоборот : нет HTML пробуем Flash .
У меня тоже не работает…
Нужно заменять div id="videoplayer" на свои ID. Код JS нужно делить и вставлять где надо. Вот такой пример.
Команда uppod, сделайте уже подробное описание внедрения!
Это было бы логично и избавило бы множество людей от проблем.
/*
Plugin Name: Uppod
Plugin URI: http://uppod.ru/help/q=wordpress
Author: Uppod
Description: Медиаплеер Uppod
Author URI: http://uppod.ru
Version: 1.6
*/
// SETTINGS
$uppod_settings['uppod.swf']='/vidp/uppod.swf';
$uppod_settings['swfobject.js']='/vidp/swfobject/swfobject.js';
$uppod_settings['adobe_update']='Необходимо обновить <a href="http://get.adobe.com/flashplayer/" target="_blank">Adobe Flash Player</a>';
$uppod_settings['wmode']='';
$uppod_settings['bgcolor']='#ffffff';
$uppod_settings['uid']=1;
//VIDEO
$uppod['video']['style']='/vid/video155-xxxx.txt';
$uppod['video']['width']='640';
$uppod['video']['height']='360';
$uppod['video']['style2']='';
$uppod['video']['width2']='400';
$uppod['video']['height2']='300';
//AUDIO
$uppod['audio']['style']='';
$uppod['audio']['width']='300';
$uppod['audio']['height']='90';
//PHOTO
$uppod['photo']['style']='';
$uppod['photo']['width']='400';
$uppod['photo']['height']='300';
function Uppod($atts, $content = null){
global $uppod;
global $uppod_settings;
$o='';
$fv='';
$style='';
$center=false;
if($atts['video']){
$m='video';
}
if($atts['audio']){
$m='audio';
}
if($atts['photo']){
$m='photo';
}
if($atts['align']){
$atts['align']=='left'?$style='float:left;':'';
$atts['align']=='right'?$style='float:right;':'';
$atts['align']=='center'?$center=true:'';
}
if($atts['margin']){
$style.='margin:'.$atts['margin'].'px;';
}
$atts['type']?$t=$atts['type']:$t='';
foreach($atts as $k => $value) {
$k!=$m&&$k!='align'&&$k!='margin'?$fv.=',"'.$k.'":"'.$value.'"':'';
}
$num=rand(0,1000);
if(isset($m)){
strpos($atts[$m],',')===false?(strpos($atts[$m],'.txt')==strlen($atts[$m])-4?$fv.=',"pl":"'.$atts[$m].'"':$fv.=',"file":"'.$atts[$m].'"'):$fv.=',"pl":"'.Uppod_Pl($atts[$m]).'"';
if($uppod_settings['uppod.swf']=='http://'|$uppod_settings['uppod.swf']==''){
$o='Ошибка: в настройках плагина Uppod не указана ссылка на плеер (<a href="http://uppod.ru/help/q=wordpress">подробнее</a>)';
}else{
$o=($center?'<center>':'').'<div id="'.$m.'player'.$num.'" '.($style!=''?'style="'.$style.'"':'').'>'.$uppod_settings['adobe_update'].'</div>'.($center?'</center>':'').'<script type="text/javascript">var flashvars = {'.($uppod[$m]['style'.$t]!=''?'"st":"'.$uppod[$m]['style'.$t].'"':'"m":"'.$m.'"').$fv.($uppod_settings['uid']==1?',"uid":"'.$m.'player'.$num.'"':'').'};var params = {allowFullScreen:"true", allowScriptAccess:"always",id:"'.$m.'player'.$num.'",bgcolor:"'.$uppod_settings['bgcolor'].'"'.($uppod_settings['wmode']!=''?',"wmode":"'.$uppod_settings['wmode'].'"':'').'}; new swfobject.embedSWF("'.$uppod_settings['uppod.swf'].'", "'.$m.'player'.$num.'", "'.$uppod[$m]['width'.$t].'", "'.$uppod[$m]['height'.$t].'", "10.0.0.0", false, flashvars, params);</script>';
}
}
return $o;
}
function Uppod_SWFObject() {
global $uppod_settings;
echo '<script src="'.$uppod_settings['swfobject.js'].'" type="text/javascript"></script>';
}
function Uppod_Pl($str) {
$pl="{'playlist':[";
$obj=split(',',$str);
for($i=0;$i<count($obj);$i++){
$pl.="{'file':'".$obj[$i]."'},";
}
return chop($pl,',')."]}";
}
add_action('wp_head', 'Uppod_SWFObject');
add_shortcode('uppod', 'Uppod')
?>
все современные браузеры поддерживают html5.
как проверить поддержку именно этих стандартов??
скрипт кинул в подключенный .js
<div id="videoplayerХХХ" style="width:620px;height:420px;" ></div>
</center>
<script type="text/javascript">
var ua = navigator.userAgent.toLowerCase();
var flashInstalled = false;
if (typeof(navigator.plugins)!="undefined" && typeof(navigator.plugins["Shockwave Flash"])=="object") {
flashInstalled = true;
} else if (typeof window.ActiveXObject != "undefined") {
try {
if (new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) {
flashInstalled = true;
}
} catch(e) {};
};
if(ua.indexOf("iphone") != -1 || ua.indexOf("ipad") != -1 || (ua.indexOf("android") != -1 && !flashInstalled)){
this.videoplayerХХХ = new Uppod({m:"video",uid:"videoplayerХХХ",comment:"пример 2",file:"ССЫЛКА НА ВИДЕО",st:"uppodvideo"});
}else{
if(!flashInstalled){
document.getElementById("videoplayerХХХ").innerHTML="<a href=http://www.adobe.com/go/getflashplayer>Требуется установить Flash-плеер</a>";
}else{
var flashvars = {"uid":"videoplayerХХХ","comment":"пример 2","st":"ПУТЬ К СТИЛЮ.txt","file":"ССЫЛКА НА ВИДЕО"};var params = {bgcolor:"#ffffff", allowFullScreen:"true", allowScriptAccess:"always",id:"videoplayerХХХ"}; new swfobject.embedSWF("http://ХХХ/uppod.swf", "videoplayerХХХ", "620", "420", "9.0.115.0", false, flashvars, params);
}
}
</script>
Я попробовал вставить в тот код, что дал автор, два плеера, но на сайте появилось тоже 2 плеера и в JS выскачила ошибка.
Очень ценный пост. Примите мои искренние поздравления! Пойду и себе немного переделаю данные, а то не пашет.
Код взял
Кто-нибудь может привести пример кода, чтоб все работало? Пожалуйста.
для активации html5 плеера на SmartTv LG добавил все что было в useragent
Вот такое прописать. А подскажите почему не работает плейлист от ютуба в HTML5 плеере? Флеш работает, а припереходе на андроиде не работает ошибку выдает в окошке
Уважаемые разработчики, прошу оказать содействие, поскольку ваш плеер мне нравится и приобрел PRO версию
<script type="text/javascript" src="
вот мой код
<div id="videoplayer12794” style="width:600px;height:475px;" ></div>
</center>
<script type="text/javascript">
var ua = navigator.userAgent.toLowerCase();
var flashInstalled = false;
if (typeof(navigator.plugins)!="undefined" && typeof(navigator.plugins["Shockwave Flash"])=="object") {
flashInstalled = true;
} else if (typeof window.ActiveXObject != "undefined") {
try {
if (new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) {
flashInstalled = true;
}
} catch(e) {};
};
if(ua.indexOf("iphone") != -1 || ua.indexOf("ipad") != -1 || (ua.indexOf("android") != -1 && !flashInstalled)){
this.videoplayer12794 = new Uppod({m:"video",uid:"videoplayer12794”,comment:”$ENTRY_NAME$”,file:”$OTHER2$”,poster:”$OTHER1$”,st:"uppodvideo"});
}else{
if(!flashInstalled){
document.getElementById("videoplayer12794”).innerHTML="<a href=http://www.adobe.com/go/getflashplayer>Требуется установить Flash-плеер</a>";
}else{
var flashvars = {"uid":"videoplayer12794”,”comment”:”$ENTRY_NAME$”,”st”:”/player/styles/video12794.txt","file”:”$OTHER2$”,”poster”:”$OTHER1$”};var params = {bgcolor:"#ffffff", allowFullScreen:"true", allowScriptAccess:"always",id:"videoplayerХ12794”}; new swfobject.embedSWF(“/player/player/uppod.swf", "videoplayer12794”, "600”, "475”, "9.0.115.0", false, flashvars, params);
}
}
</script>
я не могу понять почему не работает, ,все скрипты <head></head> прописаны
перерыл много вариантов, остановился на как мне кажется самом простом. зачем нам проверять какой девайс или какой браузер у пользователя? сегодня 99% мобильных девайсов поддерживают HTML5, а если это комп, то 99% что он поддерживает флэш.
поэтому пробуем запустить сначала флэш плеер, если не получилось, то запускаем html5 плеер:
// функция выполняется после попытки embedSWF.
function callbackFn(e) {
// если неудачно, то запускаем html5
if (!e.success) new Uppod({m:"audio",uid:"track"+i+"Player",file:"getfile.php?target="+song_id,st:"uppodaudio7",auto:"play"});
}
new swfobject.embedSWF("player/uppod.swf", "track"+i+"Player", "300", "24", "10.0.0", false, flashvars, params, att, callbackFn);
По моему, настали времена когда надо делать наоборот : нет HTML пробуем Flash .