* porting to Drupal 6 * @author Heshan Wanigasooriya * @todo */ /** * Get the object for the suitable player for the parameter resource */ function _video_common_get_player($node) { switch (_video_get_filetype($node->vidfile)) { case 'divx': return theme('video_play_divx', $node); case 'mov': case 'mp4': case '3gp': case '3g2': case 'mpg': return theme('video_play_quicktime', $node); case 'rm': return theme('video_play_realmedia', $node); case 'flv': return theme('video_play_flash', $node); case 'swf': return theme('video_play_swf', $node); case 'dir': case 'dcr': return theme('video_play_dcr', $node); case 'asf': case 'wmv': case 'avi': return theme('video_play_windowsmedia', $node); case 'ogg': return theme('video_play_ogg_theora', $node); case 'youtube': return theme('video_play_youtube', $node); case 'googlevideo': return theme('video_play_googlevideo', $node); default: drupal_set_message('Video type not supported', 'error'); break; } } /********************************************************************* * Themeable functions for playing videos. They print a page with a player embedded. *********************************************************************/ /** * Play videos from in FLV Flash video format * * @param $node * object with node information * * @return * string of content to display */ function theme_video_play_flash($node) { $loader_location = variable_get('video_flvplayerloader', 'FlowPlayer.swf'); $url = _video_get_fileurl($node->vidfile); $file = basename($url); $base_url = substr($url, 0, strrpos($url, '/')); $height = $node->video_scaled_y + 24; // add commands height // this will be executed by not Internet Explorer browsers $output = ' ' . "\n"; // this will be executed by Internet Explorer $output .= '' . "\n"; // params will be passed to both IE or not IE browsers $config = sprintf("config={'playerId':'player','clip':{'url':'%s'},'playlist':[{'url':'%s'}]}", $base_url . '/' . $file, $base_url . '/' . $file); $output .= ' ' . _video_get_parameters($node) . '

'. t('Your browser is not able to display this multimedia content.') .'

'; $output = theme('video_format_play', $output, t('http://get.adobe.com/flashplayer/'), t('Link to Adobe Flash Player Download Page'), t('Download latest Flash Player')); return $output; } /** * Play Flash .swf files. * * @param $node * object with node information * * @return * string of content to display */ function theme_video_play_swf($node) { $url = _video_get_fileurl($node->vidfile); // this will be executed by not Internet Explorer browsers $output = ' ' . "\n"; // this will be executed by Internet Explorer $output .= '' . "\n"; // params will be passed to both IE or not IE browsers $output .= ''. "\n" . '' . "\n" . _video_get_parameters($node) . '

'. t('Your browser is not able to display this multimedia content.') .'

'; $output = theme('video_format_play', $output, t('http://www.macromedia.com/go/getflashplayer'), t('Link to Flash player download'), t('Download the latest Flash player')); return $output; } /** * Play Director .dcr/.dir files. * * @param $node * object with node information * * @return * string of content to display */ function theme_video_play_dcr($node) { $url = _video_get_fileurl($node->vidfile); // this will be executed by not Internet Explorer browsers $output = ' ' . "\n"; // this will be executed by Internet Explorer $output .= '' . "\n"; // params will be passed to both IE or not IE browsers $output .= '' . "\n" . _video_get_parameters($node) . '

'. t('Your browser is not able to display this multimedia content.') .'

'; $output = theme('video_format_play', $output, t('http://www.macromedia.com/shockwave/download/'), t('Link to Macromedia Shockwave Player Download Page'), t('Download latest Shockwave Player')); return $output; } /** * Play videos from in DivX format * * @see http://developer.apple.com/internet/ieembedprep.html * @param $node * object with node information * * @return * string of content to display */ function theme_video_play_divx($node) { //Increase the height to accommodate the player controls on the bottom. $height = $node->video_scaled_y + 20; $url = _video_get_fileurl($node->vidfile); $output = ' '. "\n"; // this will be executed by not Internet Explorer browsers $output = ' '."\n"; $output .= ''."\n"; $output .= ''."\n"; $output .= ''; $output = theme('video_format_play', $output,t('http://www.divx.com/divx/webplayer/'), t('Link to DivX Download Page'), t('Download latest DivX Web Player')); return $output; } /** * Play videos from in Quicktime format * * @see http://developer.apple.com/internet/ieembedprep.html * @param $node * object with node information * * @return * string of content to display */ function theme_video_play_quicktime($node) { //Increase the height to accommodate the player controls on the bottom. $height = $node->video_scaled_y + 16; $url = _video_get_fileurl($node->vidfile); // this will be executed by not Internet Explorer browsers $output = ' ' . "\n"; // this will be executed by Internet Explorer $output .= '' . "\n"; // params will be passed to both IE or not IE browsers $output .= ' ' . "\n" . _video_get_parameters($node) . '

'. t('Your browser is not able to display this multimedia content.') .'

'; // only one
needed becouse only one opening tag has been parsed by browsers /* $output = ''; */ $output = theme('video_format_play', $output, t('http://www.apple.com/quicktime/download'), t('Link to QuickTime Download Page'), t('Download latest Quicktime Player')); return $output; } /** * Play videos from in Realmedia format * * @param $node * object with node information * * @return * string of content to display */ function theme_video_play_realmedia($node) { // Real's embeded player includes the controls // in the height $node->video_scaled_y += 40; $url = _video_get_fileurl($node->vidfile); // this will be executed by not Internet Explorer browsers $output = ' ' . "\n"; // this will be executed by Internet Explorer $output .= '' . "\n"; // params will be passed to both IE or not IE browsers $output .= ' ' . _video_get_parameters($node) . '

'. t('Your browser is not able to display this multimedia content.') .'

'; // only one needed becouse only one opening tag has been parsed by browsers $output = theme('video_format_play', $output, t('http://www.real.com/'), t('Link to Real'), t('Download latest Realmedia Player')); return $output; } /** * Play videos from in WindowsMediaVideo format * * @param $node * object with node information * * @return * string of content to display */ function theme_video_play_windowsmedia($node) { // Windows Media's embeded player includes the controls in the height $node->video_scaled_y += 68; $url = _video_get_fileurl($node->vidfile); // this will be executed by not Internet Explorer browsers $output = ' ' . "\n"; // this will be executed by Internet Explorer $output .= '' . "\n"; // params will be passed to both IE or not IE browsers $output .= ' ' . _video_get_parameters($node) . '

'. t('Your browser is not able to display this multimedia content.') .'

'; // only one needed becouse only one opening tag has been parsed by browsers $output = theme('video_format_play', $output, t('http://windowsupdate.microsoft.com/'), t('Link to Windows Update'), t('Download latest Windows Media Player')); return $output; } /** * Play Ogg Theora videos with Cortado Applet * * @param $node * object with node information * * @return * string of content to display */ function theme_video_play_ogg_theora($node) { global $base_url; $cortado_location = variable_get('video_cortado', $base_url . '/cortado.jar'); $url = _video_get_fileurl($node->vidfile); $width = ($node->video_scaled_x ? $node->video_scaled_x : '425'); $height = ($node->video_scaled_y ? $node->video_scaled_y : '350'); $output = ' This browser does not have a Java Plug-in.
Get the latest Java Plug-in here.
'; $output = theme('video_format_play', $output, t('http://java.com/download/'), t('Link to java.com'), t('Download Java')); return $output; }