Просмотр поста

.
ramzes
//bbcode addet
//это в начале функции (обязательно)

    $str = str_replace('http://www.youtube.com', 'youtube-com', $str);
    $str = str_replace('http://m.youtube.com', 'youtube-com', $str);
    $str = str_replace('http://youtu.be/', 'youtube-com/watch?v=', $str);

// это в конце функции
    $str = preg_replace_callback('!youtube\-com\/watch\?v=([a-z\d\-_]+)([^\s|\[]+)?!si',
        'youtube_video',
        $str.' ');
    $str = preg_replace_callback('!youtube\-com\/index\?[^\?]+\?v=([a-z\d\-_]+)([^\s|\[]+)?!is',
        'youtube_video',
            $str.' ');
    $str = preg_replace_callback('!youtube\-com\/watch\?v=([a-z\d\-_]+)([^\s|\[]+)?!si',
        'youtube_video',
        $str.' ');
    $str = preg_replace_callback('!<iframe.*?youtube\-com/embed/([a-z\d\-_]+).*?</iframe>!is',
            'youtube_video',
            $str.' ');

обрабатываем
function youtube_video($url){
    $wd = browser_type();
    if($wd['type']!=0){

        return '<div style="border: 1px solid #eee; background: #000; color: #fff;width:'.$wd['x'].'px; border-radius: 6px; padding: 2px;"><div style="border-radius: 4px; margin: 3px; text-align: center; padding: 3px; font-weight: bold; cursor:pointer;"  onclick="var _vd=this.parentNode.getElementsByTagName(\'div\')[1];if(_vd.style.display==\'none\'){_vd.style.display=\'\';}else{_vd.style.display=\'none\';}">Видео</div>
        <div style="display:none;">
        <video width="'.$wd['x'].'" height="'.$wd['y'].'" id="player1" preload="none">
                	<source type="video/youtube" src="http://www.youtube.com/watch?v='.$url[1].'" />
                </video>
                <script>
                    $(\'video\').mediaelementplayer({
                    	success: function(media, node, player) {
                    		$(\'#\' + node.id + \'-mode\').html(\'mode: \' + media.pluginType);
                    	}
                    });
                </script></div></div>';
    }else{
        return '<div style="border: 1px solid #eee; background: #000; color: #fff; border-radius: 6px; text-align: center; padding: 5px; font-weight: bold;">Видео недоступно для телефона</div>';
    }
}


function vk_video($string){
    $wd = browser_type();
        preg_match('|&lt;iframe src=&quot;(.*)&quot;(.*)&lt;/iframe&gt;|is', $string, $frame);
        preg_match_all('#(oid=[\d]+|id=[\d]+|hash=[\da-z]+)#i', $frame[1], $video_param);
        if($video_param[1][0]!='' AND $video_param[1][1]!='' AND $video_param[1][2]!=''){
            if($wd['type']==2){
            $string = str_replace($frame[0], '<div style="border: 1px solid #eee; background: #000; color: #fff;width:'.$wd['x'].'px; border-radius: 6px; padding: 2px;"><div style="border-radius: 4px; margin: 3px; text-align: center; padding: 3px; font-weight: bold; cursor:pointer;"  onclick="var _fr=this.parentNode.getElementsByTagName(\'iframe\')[0];if(_fr.style.display==\'none\'){_fr.style.display=\'\';}else{_fr.style.display=\'none\';}">Видео</div><iframe style="display:none;" src="http://vk.com/video_ext.php?'.$video_param[1][0].'&amp;'.$video_param[1][1].'&amp;'.$video_param[1][2].'&amp;hd=1" width="'.$wd['x'].'" height="'.$wd['y'].'" frameborder="0"></iframe></div>', $string);
        }else{
                $string = str_replace($frame[0], '<div style="border: 1px solid #eee; background: #000; color: #fff; border-radius: 6px; text-align: center; padding: 5px; font-weight: bold;">Видео недоступно для телефона</div>', $string);
            }
    }
    return $string;
}

тут вывод плеера ютьюба заменяйте на свой, т.к. я использую отдельный плеер на сайте.
_____________
вспомогательная php функция определения размера фрейма
function browser_type(){
    if(isset($_COOKIE['browser_type'])){
        if($_COOKIE['browser_type']==2){
            return array('x' => 640, 'y' =>340, 'type' => 2);
        }else if($_COOKIE['browser_type']==2){
            return array('x' => 460, 'y' =>280, 'type' => 1);
        }else{
            return array('x' => 0, 'y' =>0);
        }
    }else{
        return array('x' => 0, 'y' =>0, 'type' => 0);
    }
}

вспомогательная js функция определения размера фрейма видео
function BrowserType(){
    var BrowserType = getCookie('browser_type');
   if(BrowserType == '' || BrowserType == undefined){
       if(window.screen.width >= 800){
           setCookie('browser_type', 2, 300, '/');
       }else if(window.screen.width > 460){
                  setCookie('browser_type', 1, 3600, '/');
       }else{
           setCookie('browser_type', 0, 300, '/');
       }
   }
}

 /*****    AUTOSTART    *****/
$(document).ready(function(){
   BrowserType();
});

________
а ни кто и не говорил, что будет легко)))