jcisio / media-wrapper
Requires
- php: >=5.3.5
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- phpunit/phpunit: >=3.7
README
Introduction
- Author: Hai-Nam Nguyen (jcisio)
- Homepage: https://github.com/jcisio/MediaWrapper
- Requires PHP 5.6 or later
- It is used by Drupal modules like Internet Sources field or Content Attachment.
Quick start
Example:
include 'MediaWrapper/MediaWrapper.php';
$m = MediaWrapper::getInstance()->getWrapper('http://www.youtube.com/watch?v=vyfzw09jjEo');
// Print the thumbnail.
print $m->thumbnail();
// Print the full player.
print $m->player();
// Set default player options.
$m->player_options(array('width' => '200', 'height' => '100'));
// Print the full player again with new default options.
print $m->player();
// Override default options and print the full player.
print $m->player(array('height' => '120'));
Test with PHPUnit:
phpunit
or if you don't have PHPUnit:
Composer install --dev
vendor/phpunit/phpunit/phpunit
Use cases
MediaWrapper is extensible.
Write your own wrapper
You can look at the MediaWrapper/Wrapper folder for examples. Once you have your wrapper, include that file and register that wrapper using
MediaWrapper::getInstance()->register();
Override the output
You can extend a wrapper, keep the pattern and override the player() function. Do not forget to unregister the old wrapper so that only yours takes care of that pattern.
Responsive player
MediaWrapper in most cases uses the default player provided by each service. To make the player responsive (e.g. width = 100%), you can use CSS to make the iframe responsive. There are a lot of tutorials out there.
Another solution is to use the excellent and tiny Fitvids JS jQuery plugin to make all videos responsive. It takes care of your CSS.