class MediaBrightcoveStreamWrapper in Brightcove Video Connect 7.3
Same name and namespace in other branches
- 7.2 brightcove_media/MediaBrightcoveStreamWrapper.inc \MediaBrightcoveStreamWrapper
@file Stream wrapper fro Brightcove videos.
Hierarchy
- class \MediaBrightcoveStreamWrapper extends \MediaReadOnlyStreamWrapper
Expanded class hierarchy of MediaBrightcoveStreamWrapper
1 string reference to 'MediaBrightcoveStreamWrapper'
- brightcove_media_stream_wrappers in brightcove_media/
brightcove_media.module - Implements hook_stream_wrappers().
File
- brightcove_media/
MediaBrightcoveStreamWrapper.inc, line 7 - Stream wrapper fro Brightcove videos.
View source
class MediaBrightcoveStreamWrapper extends MediaReadOnlyStreamWrapper {
public function getTarget() {
return FALSE;
}
public static function getMimeType($uri, $mapping = NULL) {
return 'video/brightcove';
}
public function interpolateUrl() {
if ($video_id = $this
->getVideoID()) {
// @todo find out how to detect this url in a nice way, it might break any time
$pid = variable_get('brightcove_player_pid', NULL);
$player = brightcove_player_load($pid);
if ($player) {
return url('http://c.brightcove.com/services/viewer/federated_f9', array(
'query' => array(
'playerID' => $player->player_id,
'playerKey' => $player->player_key,
'isVid' => 'true',
'isUI' => 'true',
'@videoPlayer' => $video_id,
),
));
}
else {
watchdog('brightcove', 'Video Player is missing.', array(), WATCHDOG_ERROR);
}
}
return NULL;
}
public function getVideoID() {
if ($url = parse_url($this->uri)) {
if ($url['scheme'] == 'brightcove' && is_numeric($url['host'])) {
return $url['host'];
}
}
return NULL;
}
public function setUri($uri) {
$this->uri = $uri;
}
function getOriginalThumbnailPath() {
$video = brightcove_video_load($this
->getVideoID());
if (!empty($video->videoStillURL)) {
return $video->videoStillURL;
}
if (!empty($video->thumbnailURL)) {
return $video->thumbnailURL;
}
return FALSE;
}
/**
* Get the local thumbnail path of the bc video.
*
* @return string
* The local path of the thumbnail image.
*/
function getLocalThumbnailPath() {
$video_id = $this
->getVideoID();
$thumbnail_path = 'public://media-brightcove/' . $video_id . '.jpg';
$default_path = 'public://media-brightcove/default.jpg';
if (!file_exists($thumbnail_path)) {
$dirname = drupal_dirname($thumbnail_path);
file_prepare_directory($dirname, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS);
$original_path = $this
->getOriginalThumbnailPath();
// If a thumbnail can be identified, download it.
if (!empty($original_path)) {
$response = drupal_http_request($original_path);
if (!empty($response->data)) {
file_unmanaged_save_data($response->data, $thumbnail_path, FILE_EXISTS_ERROR);
}
}
else {
if (!file_exists($default_path)) {
$bc_default_thumbnail = variable_get('brightcove_default_thumbnail', brightcove_get_default_image());
$args = new StdClass();
$args->filemime = $this
->getMimeType(NULL);
file_unmanaged_copy(file_icon_path($args, $bc_default_thumbnail), $default_path, FILE_EXISTS_ERROR);
}
return $default_path;
}
}
return $thumbnail_path;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
MediaBrightcoveStreamWrapper:: |
function | Get the local thumbnail path of the bc video. | ||
MediaBrightcoveStreamWrapper:: |
public static | function | ||
MediaBrightcoveStreamWrapper:: |
function | |||
MediaBrightcoveStreamWrapper:: |
public | function | ||
MediaBrightcoveStreamWrapper:: |
public | function | ||
MediaBrightcoveStreamWrapper:: |
public | function | ||
MediaBrightcoveStreamWrapper:: |
public | function |