コード例 #1
0
 function secure_html5_video_player_get_media_server_address($client_ip, $video_filename)
 {
     $has_media_server = secure_html5_video_player_has_media_server();
     if ($has_media_server) {
         $server_list = secure_html5_video_player_media_server_address_list();
         $chksum = crc32($client_ip);
         if ($chksum < 0) {
             $chksum = -1 * $chksum;
         }
         if ($video_filename) {
             $server_filelist = secure_html5_video_player_filelist(true);
             $server_list_with_file = $server_filelist[$video_filename];
             if (!empty($server_list_with_file)) {
                 $server_list = $server_list_with_file;
             }
         }
         $num_servers = count($server_list);
         $selected_server = $chksum % $num_servers;
         if ($selected_server < $num_servers && isset($server_list[$selected_server]) && $server_list[$selected_server]) {
             return $server_list[$selected_server];
         }
     }
     $plugin_url = plugins_url('secure-html5-video-player');
     return $plugin_url;
 }
コード例 #2
0
 function secure_html5_video_player_shortcode_video($atts)
 {
     $bd = SH5VP_BrowserDetect::detect();
     $video_tag = '';
     $count_file_exists = 0;
     $secure_html5_video_player_enable_download_fallback = get_option('secure_html5_video_player_enable_download_fallback');
     $secure_html5_video_player_youtube_override_type = get_option('secure_html5_video_player_youtube_override_type');
     $secure_html5_video_player_video_dir = get_option('secure_html5_video_player_video_dir');
     $secure_html5_video_player_skin = get_option('secure_html5_video_player_skin');
     $plugin_dir = plugins_url('secure-html5-video-player');
     extract(shortcode_atts(array('file' => '', 'mp4' => '', 'webm' => '', 'ogg' => '', 'poster' => '', 'width' => get_option('secure_html5_video_player_default_width'), 'height' => get_option('secure_html5_video_player_default_height'), 'preload' => get_option('secure_html5_video_player_default_preload'), 'autoplay' => get_option('secure_html5_video_player_default_autoplay'), 'loop' => get_option('secure_html5_video_player_default_loop'), 'controls' => get_option('secure_html5_video_player_default_controls'), 'youtube' => '', 'vimeo' => ''), $atts));
     if (!$width || $width <= 0) {
         $width = '640';
     }
     if (!$height || $height <= 0) {
         $height = '480';
     }
     $youtube_tag = '';
     $youtube_exists = secure_html5_video_player_youtube_exists($youtube);
     if ($youtube_exists) {
         $autoplay_youtube = '0';
         if ($autoplay == 'yes' || $autoplay == 'true') {
             $autoplay_youtube = '1';
         }
         $origin = urlencode(site_url());
         $object_tag_id = secure_html5_video_player_to_object_id('ytplayer-', $youtube);
         $youtube_tag .= "<!-- Begin - Secure HTML5 Video Player -->\n";
         $youtube_tag .= "<iframe id='{$object_tag_id}' type='text/html' width='{$width}' height='{$height}' src='http://www.youtube.com/embed/{$youtube}?autoplay={$autoplay_youtube}&origin={$origin}' frameborder='0' /></iframe>\n";
         $youtube_tag .= "<!-- End - Secure HTML5 Video Player -->\n";
     }
     $vimeo_tag = '';
     $vimeo_exists = secure_html5_video_player_vimeo_exists($vimeo);
     if ($vimeo_exists) {
         $autoplay_vimeo = '0';
         if ($autoplay == 'yes' || $autoplay == 'true') {
             $autoplay_vimeo = '1';
         }
         $loop_vimeo = '0';
         if ($loop == 'yes' || $loop == 'true') {
             $loop_vimeo = '1';
         }
         $object_tag_id = secure_html5_video_player_to_object_id('vimeoplayer-', $vimeo);
         $vimeo_tag .= "<!-- Begin - Secure HTML5 Video Player -->\n";
         $vimeo_tag .= "<iframe id='{$object_tag_id}' src='http://player.vimeo.com/video/{$vimeo}?autoplay={$autoplay_vimeo}&amp;loop={$loop_vimeo}' width='{$width}' height='{$height}' frameborder='0'></iframe>";
         $vimeo_tag .= "<!-- End - Secure HTML5 Video Player -->\n";
     }
     $video_tag .= "<!-- Begin - Secure HTML5 Video Player -->\n";
     if ($file) {
         $file = secure_html5_video_player_filename_no_ext($file);
     }
     $is_s3_enabled = secure_html5_video_player_is_s3_enabled();
     $has_media_server = secure_html5_video_player_has_media_server();
     $object_tag_id = '';
     if ($file) {
         $object_tag_id = secure_html5_video_player_to_object_id('vjs-ff-', $file);
         $access_key = secure_html5_video_player_accessKey($file);
         $remote_mp4_link = '';
         $remote_webm_link = '';
         $remote_ogv_link = '';
         $remote_jpg_link = '';
         $remote_png_link = '';
         $remote_gif_link = '';
         if ($is_s3_enabled) {
             $remote_mp4_link = apply_filters('secure_html5_video_player_s3_media_exists', "{$file}.mp4");
             $remote_webm_link = apply_filters('secure_html5_video_player_s3_media_exists', "{$file}.webm");
             $remote_ogv_link = apply_filters('secure_html5_video_player_s3_media_exists', "{$file}.ogv");
             $remote_jpg_link = apply_filters('secure_html5_video_player_s3_media_exists', "{$file}.jpg");
             $remote_png_link = apply_filters('secure_html5_video_player_s3_media_exists', "{$file}.png");
             $remote_gif_link = apply_filters('secure_html5_video_player_s3_media_exists', "{$file}.gif");
             if ($remote_mp4_link || $remote_webm_link || $remote_ogv_link) {
                 $has_media_server = FALSE;
             }
         }
         if ($has_media_server) {
             $media_plugin_dir = apply_filters('secure_html5_video_player_get_media_server_address', secure_html5_video_player_get_client_ip(), $file);
             $video_tag .= "<!-- Using media server: " . $media_plugin_dir . " -->\n";
             if (!$remote_mp4_link) {
                 $remote_mp4_link = apply_filters('secure_html5_video_player_remote_media_exists', $media_plugin_dir, "{$file}.mp4");
             }
             if (!$remote_webm_link) {
                 $remote_webm_link = apply_filters('secure_html5_video_player_remote_media_exists', $media_plugin_dir, "{$file}.webm");
             }
             if (!$remote_ogv_link) {
                 $remote_ogv_link = apply_filters('secure_html5_video_player_remote_media_exists', $media_plugin_dir, "{$file}.ogv");
             }
             if (!$remote_jpg_link) {
                 $remote_jpg_link = apply_filters('secure_html5_video_player_remote_media_exists', $media_plugin_dir, "{$file}.jpg");
             }
             if (!$remote_png_link) {
                 $remote_png_link = apply_filters('secure_html5_video_player_remote_media_exists', $media_plugin_dir, "{$file}.png");
             }
             if (!$remote_gif_link) {
                 $remote_gif_link = apply_filters('secure_html5_video_player_remote_media_exists', $media_plugin_dir, "{$file}.gif");
             }
         }
         if ($remote_mp4_link) {
             $mp4 = $remote_mp4_link;
             $count_file_exists++;
         } else {
             if (file_exists("{$secure_html5_video_player_video_dir}/{$file}.mp4")) {
                 $mp4 = secure_html5_video_player_media_url($secure_html5_video_player_video_dir, $plugin_dir, $access_key, $file, 'mp4');
                 $count_file_exists++;
             } else {
                 if (file_exists("{$secure_html5_video_player_video_dir}/{$file}.m4v")) {
                     $mp4 = secure_html5_video_player_media_url($secure_html5_video_player_video_dir, $plugin_dir, $access_key, $file, 'm4v');
                     $count_file_exists++;
                 }
             }
         }
         if ($remote_webm_link) {
             $webm = $remote_webm_link;
             $count_file_exists++;
         } else {
             if (file_exists("{$secure_html5_video_player_video_dir}/{$file}.webm")) {
                 $webm = secure_html5_video_player_media_url($secure_html5_video_player_video_dir, $plugin_dir, $access_key, $file, 'webm');
                 $count_file_exists++;
             }
         }
         if ($remote_ogv_link) {
             $ogg = $remote_ogv_link;
             $count_file_exists++;
         } else {
             if (file_exists("{$secure_html5_video_player_video_dir}/{$file}.ogv")) {
                 $ogg = secure_html5_video_player_media_url($secure_html5_video_player_video_dir, $plugin_dir, $access_key, $file, 'ogv');
                 $count_file_exists++;
             } else {
                 if (file_exists("{$secure_html5_video_player_video_dir}/{$file}.ogg")) {
                     $ogg = secure_html5_video_player_media_url($secure_html5_video_player_video_dir, $plugin_dir, $access_key, $file, 'ogg');
                     $count_file_exists++;
                 } else {
                     if (file_exists("{$secure_html5_video_player_video_dir}/{$file}.theora.ogv")) {
                         $ogg = secure_html5_video_player_media_url($secure_html5_video_player_video_dir, $plugin_dir, $access_key, $file, 'theora.ogv');
                         $count_file_exists++;
                     }
                 }
             }
         }
         if (!$poster) {
             if ($remote_png_link) {
                 $poster = $remote_png_link;
             } else {
                 if ($remote_jpg_link) {
                     $poster = $remote_jpg_link;
                 } else {
                     if ($remote_gif_link) {
                         $poster = $remote_gif_link;
                     } else {
                         if (file_exists("{$secure_html5_video_player_video_dir}/{$file}.jpg")) {
                             $poster = secure_html5_video_player_media_url($secure_html5_video_player_video_dir, $plugin_dir, $access_key, $file, 'jpg');
                         } else {
                             if (file_exists("{$secure_html5_video_player_video_dir}/{$file}.jpeg")) {
                                 $poster = secure_html5_video_player_media_url($secure_html5_video_player_video_dir, $plugin_dir, $access_key, $file, 'jpeg');
                             } else {
                                 if (file_exists("{$secure_html5_video_player_video_dir}/{$file}.png")) {
                                     $poster = secure_html5_video_player_media_url($secure_html5_video_player_video_dir, $plugin_dir, $access_key, $file, 'png');
                                 } else {
                                     if (file_exists("{$secure_html5_video_player_video_dir}/{$file}.gif")) {
                                         $poster = secure_html5_video_player_media_url($secure_html5_video_player_video_dir, $plugin_dir, $access_key, $file, 'gif');
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     $fallback_plugin_dir = urlencode($plugin_dir);
     // MP4 Source Supplied
     if ($mp4) {
         if (!$object_tag_id) {
             $object_tag_id = secure_html5_video_player_to_object_id('vjs-ff-', $mp4);
         }
         $mp4_source = '<source src="' . $mp4 . '" type="video/mp4" />';
         $mp4_link = '<a class="sh5vp-link-mp4" href="' . $mp4 . '">MP4</a>';
         $fallback_mp4 = urlencode($mp4);
         $count_file_exists++;
     }
     // WebM Source Supplied
     if ($webm) {
         $webm_source = '<source src="' . $webm . '" type="video/webm" />';
         $webm_link = '<a class="sh5vp-link-webm" href="' . $webm . '">WebM</a>';
         $count_file_exists++;
     }
     // Ogg source supplied
     if ($ogg) {
         $ogg_source = '<source src="' . $ogg . '" type="video/ogg" />';
         $ogg_link = '<a class="sh5vp-link-ogg" href="' . $ogg . '">Ogg</a>';
         $count_file_exists++;
     }
     if ($poster) {
         $poster_attribute = 'poster="' . $poster . '"';
     }
     if ($preload == 'yes' || $preload == 'true') {
         $preload_attribute = 'preload="auto"';
     } else {
         $preload_attribute = 'preload="none"';
     }
     if ($autoplay == 'yes' || $autoplay == 'true') {
         $autoplay_attribute = 'autoplay="autoplay"';
         $fallback_autoplay = '1';
     } else {
         $autoplay_attribute = "";
         $fallback_autoplay = '0';
     }
     if ($loop == 'yes' || $loop == 'true') {
         $loop_attribute = 'loop="loop"';
     } else {
         $loop_attribute = "";
     }
     if ($controls != 'no' && $controls != 'false') {
         $controls_attribute = 'controls="controls"';
     } else {
         $controls_attribute = "";
     }
     $video_tag_skin = '';
     if ($secure_html5_video_player_skin != 'videojs') {
         $video_tag_skin = $secure_html5_video_player_skin . '-css';
     }
     $video_tag .= "<div class='video-js-box sh5vp-video-box {$video_tag_skin}' >\n";
     if ($bd->isMobileBrowser()) {
         // iOS and Android devices
         $video_tag .= "<video class='video-js sh5vp-video' onclick='this.play();' width='{$width}' height='{$height}' {$poster_attribute} {$controls_attribute} {$preload_attribute} {$autoplay_attribute} {$loop_attribute} >\n";
         if ($mp4_source) {
             $video_tag .= "{$mp4_source}\n";
         }
         $video_tag .= "</video>\n";
     } else {
         if ($bd->isIE() && $bd->versionIE() <= 8 && $mp4) {
             // IE 7 or IE 8
             $video_tag .= "<iframe id='{$object_tag_id}' type='text/html' width='{$width}' height='{$height}' src='{$plugin_dir}/fallback/index.php?autoplay={$fallback_autoplay}&mp4={$fallback_mp4}&url={$fallback_plugin_dir}' frameborder='0' scrolling='no' seamless='seamless' /></iframe>\n";
             if ('always' == $secure_html5_video_player_enable_download_fallback) {
                 $video_tag .= "<p class='sh5vp-download-links'><label>Download Video:</label>\n";
                 if ($mp4_link) {
                     $video_tag .= "{$mp4_link}\n";
                 }
                 if ($webm_link) {
                     $video_tag .= "{$webm_link}\n";
                 }
                 if ($ogg_link) {
                     $video_tag .= "{$ogg_link}\n";
                 }
                 $video_tag .= "</p>\n";
             }
         } else {
             // everything else
             if ($count_file_exists == 0) {
                 $video_tag .= "<!-- " . __('file not found', 'secure-html5-video-player') . ": {$secure_html5_video_player_video_dir}/{$file} -->\n";
             } else {
                 if ($bd->isFirefox() && ($bd->versionFirefox() < 21 || $bd->isMac()) && $mp4 && !($ogg || $webm)) {
                     $video_tag .= "<iframe id='{$object_tag_id}' type='text/html' width='{$width}' height='{$height}' src='{$plugin_dir}/fallback/index.php?autoplay={$fallback_autoplay}&mp4={$fallback_mp4}&url={$fallback_plugin_dir}' frameborder='0' /></iframe>\n";
                 } else {
                     $video_tag .= "<video class='video-js sh5vp-video' width='{$width}' height='{$height}' {$poster_attribute} {$controls_attribute} {$preload_attribute} {$autoplay_attribute} {$loop_attribute} >\n";
                     if ($mp4_source) {
                         $video_tag .= "{$mp4_source}\n";
                     }
                     if ($webm_source) {
                         $video_tag .= "{$webm_source}\n";
                     }
                     if ($ogg_source) {
                         $video_tag .= "{$ogg_source}\n";
                     }
                     $video_tag .= "</video>\n";
                 }
             }
             //Download links provided for devices that can't play video in the browser.
             if ('no' != $secure_html5_video_player_enable_download_fallback) {
                 $can_play_provided = secure_html5_video_player_can_play($mp4_link, $ogg_link, $webm_link);
                 if (!$can_play_provided || 'always' == $secure_html5_video_player_enable_download_fallback) {
                     $video_tag .= "<p class='sh5vp-download-links'><label>Download Video:</label>\n";
                     if ($mp4_link) {
                         $video_tag .= "{$mp4_link}\n";
                     }
                     if ($webm_link) {
                         $video_tag .= "{$webm_link}\n";
                     }
                     if ($ogg_link) {
                         $video_tag .= "{$ogg_link}\n";
                     }
                     $video_tag .= "</p>\n";
                 }
             }
         }
     }
     $video_tag .= "</div>\n";
     $video_tag .= "<!-- End - Secure HTML5 Video Player -->\n";
     if ($vimeo_exists) {
         if ($count_file_exists == 0) {
             return $vimeo_tag;
         } else {
             if ('primary' == $secure_html5_video_player_youtube_override_type) {
                 return $vimeo_tag;
             }
         }
     } else {
         if ($youtube_exists) {
             if ($count_file_exists == 0) {
                 return $youtube_tag;
             } else {
                 if ('primary' == $secure_html5_video_player_youtube_override_type) {
                     return $youtube_tag;
                 }
             }
         }
     }
     return $video_tag;
 }