Pogledajte određenu poruku
Staro 03. 04. 2010.   #1
Marko Medojevic
član
Certified
 
Avatar Marko Medojevic
 
Datum učlanjenja: 12.05.2007
Lokacija: Beograd
Poruke: 82
Hvala: 20
293 "Hvala" u 7 poruka
Marko Medojevic is on a distinguished roadMarko Medojevic is on a distinguished roadMarko Medojevic is on a distinguished roadMarko Medojevic is on a distinguished road
Pošaljite poruku preko MSN za Marko Medojevic
Default Embed sa video servisa

PHP kôd:
<?php
interface IVideoEmbed {
    public function 
getImgUrl();
    public function 
getEmbedCode();
}

class 
VideoEmbedYouTube implements IVideoEmbed {
    private 
$_id;
    
    public function 
__construct($id) {
        
$this->_id $id;
    }
    
    public function 
getImgUrl() {
        return 
sprintf("http://img.youtube.com/vi/%s/default.jpg",  $this->_id);
    }
    
    public function 
getEmbedCode() {
        return 
sprintf("<object width=\"425\" height=\"344\"><param name=\"movie\" value=\"http://www.youtube.com/v/%s&hl=en&fs=1&rel=0\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/%s&hl=en&fs=1&rel=0\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"425\" height=\"344\"></embed></object>"$this->_id$this->_id);   
    }
    
}

class 
VideoEmbedGoogleVideo implements IVideoEmbed {
    private 
$_id;
    
    public function 
__construct($id) {
        
$this->_id $id;
    }
    
    public function 
getImgUrl() {
        
$vrss file_get_contents("http://video.google.com/videofeed?docid=" $this->_id);
        
        if(!empty(
$vrss))
        {
            
preg_match('/<media:thumbnail url="([^"]+)/',$vrss,$thumbnail_array);
            
$thumbnail $thumbnail_array[1];
            
//Remove amp;
            
$thumbnail str_replace('amp;','',$thumbnail);
        }
        
        return 
$thumbnail;
    }
    
    public function 
getEmbedCode() {
        return 
sprintf("<embed id=\"VideoPlayback\" src=\"http://video.google.com/googleplayer.swf?docid=%s&hl=en&fs=true\" style=\"width:400px;height:326px\" allowFullScreen=\"true\" allowScriptAccess=\"always\" type=\"application/x-shockwave-flash\"> </embed>"$this->_id);    
    }
}

class 
VideoEmbedFactory {
    static public function 
getVideoEmbed($url) {
        if( 
preg_match('/.*youtube\.com\/watch\?v=([A-Za-z0-9._%-]*)[&\w;=\+_\-]*/'$url$matches) ) {
            
$extractedId $matches[1];
            return new 
VideoEmbedYouTube($extractedId);
        }
        
        if( 
preg_match('/.*video\.google\.com\/videoplay\?docid=([A-Za-z0-9._%-]*)[&\w;=\+_\-]*/''http://video.google.com/videoplay?docid=5547481422995115331#'$matches) ) {
            
$extractedId $matches[1];
            return new 
VideoEmbedGoogleVideo($extractedId);
        }
    }
}



$embed VideoEmbedFactory::getVideoEmbed("http://www.youtube.com/watch?v=LZIjglFy5jQ");
echo 
'<img src="' $embed->getImgUrl() . '" />';
echo 
$embed->getEmbedCode();

echo 
'<hr />';


$embed VideoEmbedFactory::getVideoEmbed("http://video.google.com/videoplay?docid=5547481422995115331#");
echo 
'<img src="' $embed->getImgUrl() . '" />';
echo 
$embed->getEmbedCode();

?>
Služi za embedovanje video klipova sa raznih servisa na vaš sajt. Klase su kreirane na osnovi factory design patterna i mogu se lako proširivati novim servisima.
Imao sam potrebe da na par sajtova implementiram embed sa drugih servisa, pa sam je tada napisao.
Marko Medojevic je offline   Odgovorite uz citat
7 članova zahvaljuje Marko Medojevic za poruku: