Пример #1
0
function powerpressplayer_build_html5mobile($media_url, $EpisodeData)
{
    $content = '';
    $html5 = true;
    // Special logic, we need to check if we're dealing with Android 2.2 or older, in which case we don't want to use HTML5 audio/video due to controls bug
    if (preg_match('/android ([\\d\\.]+)/i', $_SERVER['HTTP_USER_AGENT'], $matches)) {
        if (!empty($matches[1]) && version_compare($matches[1], "2.3") < 0) {
            $html5 = false;
        }
    }
    $extension = powerpressplayer_get_extension($media_url);
    switch ($extension) {
        case 'mp4':
        case 'webm':
        case 'm4v':
        case 'ogg':
        case 'ogv':
            // Video
            $Settings = get_option('powerpress_general');
            // MEJS is not ready for mobile, using native HTML5 performs more efficiently at this point. Someday though we will be able to use MEJS for mobile.
            if ($html5 && !empty($Settings['video_player']) && $Settings['video_player'] == 'mediaelement-video') {
                $content .= powerpressplayer_build_mediaelementvideo($media_url, $EpisodeData);
            } else {
                if ($html5) {
                    $content .= powerpressplayer_build_html5video($media_url, $EpisodeData);
                } else {
                    $content .= powerpressplayer_build_playimage($media_url, $EpisodeData, true);
                }
            }
            break;
        case 'mp3':
        case 'm4a':
        case 'oga':
            // Audio
            $Settings = get_option('powerpress_general');
            // MEJS is not ready for mobile, using native HTML5 performs more efficiently at this point. Someday though we will be able to use MEJS for mobile.
            if ($html5 && !empty($Settings['player']) && $Settings['player'] == 'mediaelement-audio') {
                $content .= powerpressplayer_build_mediaelementaudio($media_url, $EpisodeData);
            } else {
                if ($html5) {
                    $content .= powerpressplayer_build_html5audio($media_url, $EpisodeData);
                } else {
                    $content .= powerpressplayer_build_playimageaudio($media_url, true);
                }
            }
            break;
    }
    return $content;
}
Пример #2
0
function powerpressplayer_build_flowplayerclassic($media_url, $EpisodeData = array())
{
    // Very important setting, we need to know if the media should auto play or not...
    $autoplay = false;
    // (default)
    if (!empty($EpisodeData['autoplay'])) {
        $autoplay = true;
    }
    $cover_image = '';
    $player_width = 400;
    $player_height = 225;
    $Settings = get_option('powerpress_general');
    // Global Settings
    if (!empty($Settings['player_width'])) {
        $player_width = $Settings['player_width'];
    }
    if (!empty($Settings['player_height'])) {
        $player_height = $Settings['player_height'];
    }
    if (!empty($Settings['poster_image'])) {
        $cover_image = $Settings['poster_image'];
    }
    // Episode Settings
    if (!empty($EpisodeData['width'])) {
        $player_width = $EpisodeData['width'];
    }
    if (!empty($EpisodeData['height'])) {
        $player_height = $EpisodeData['height'];
    }
    if (!empty($EpisodeData['image'])) {
        $cover_image = $EpisodeData['image'];
    }
    $extension = powerpressplayer_get_extension($media_url, $EpisodeData);
    if (($extension == 'mp3' || $extension == 'm4a') && empty($Settings['poster_image_audio'])) {
        // FlowPlayer has differeent sizes for audio than for video
        $player_width = 320;
        if (!empty($Settings['player_width_audio'])) {
            $player_width = $Settings['player_width_audio'];
        }
        if (!empty($EpisodeData['width']) && !empty($Settings['player_width_audio'])) {
            $player_width = $EpisodeData['width'];
        }
        $cover_image = '';
        // Audio should not have a cover image
        $player_height = 24;
        if (stristr($_SERVER['HTTP_USER_AGENT'], 'firefox') !== false) {
            $player_height = 22;
        }
        // Firefox only
    }
    // Build player...
    $player_id = powerpressplayer_get_next_id();
    $content = '';
    $content .= '<div class="powerpress_player" id="powerpress_player_' . $player_id . '"></div>' . PHP_EOL;
    $content .= '<script type="text/javascript"><!--' . PHP_EOL;
    if (!empty($EpisodeData['jquery_autowidth'])) {
        $player_width = 'jQuery(window).width()';
        if (preg_match('/(mp4|m4v|ogg|ogv|webm)/i', $extension)) {
            $player_height = 'jQuery(window).height()';
        }
    }
    if (empty($EpisodeData['type'])) {
        $EpisodeData['type'] = powerpress_get_contenttype('test.' . $extension);
    }
    $content .= "pp_flashembed(\n";
    $content .= "\t'powerpress_player_{$player_id}',\n";
    $content .= "\t{src: '" . powerpress_get_root_url() . "FlowPlayerClassic.swf', ";
    if (preg_match('/^jQuery\\(/', $player_width)) {
        // Only add single quotes if jQuery( ... is not in the value
        $content .= "width: {$player_width}, ";
    } else {
        $content .= "width: '{$player_width}', ";
    }
    if (preg_match('/^jQuery\\(/', $player_height)) {
        // Only add single quotes if jQuery( ... is not in the value
        $content .= "height: {$player_height}, ";
    } else {
        $content .= "height: '{$player_height}', ";
    }
    $content .= "wmode: 'transparent' },\n";
    if ($cover_image) {
        $content .= "\t{config: { autoPlay: " . ($autoplay ? 'true' : 'false') . ", autoBuffering: false, showFullScreenButton: " . (preg_match('/audio\\//', $EpisodeData['type']) ? 'false' : 'true') . ", showMenu: false, videoFile: '{$media_url}', splashImageFile: '{$cover_image}', scaleSplash: true, loop: false, autoRewind: true } }\n";
    } else {
        $content .= "\t{config: { autoPlay: " . ($autoplay ? 'true' : 'false') . ", autoBuffering: false, showFullScreenButton: " . (preg_match('/audio\\//', $EpisodeData['type']) ? 'false' : 'true') . ", showMenu: false, videoFile: '{$media_url}', loop: false, autoRewind: true } }\n";
    }
    $content .= ");\n";
    $content .= "//-->\n";
    $content .= "</script>\n";
    return $content;
}
Пример #3
0
function powerpressadmin_community_news($items = 3)
{
    require_once POWERPRESS_ABSPATH . '/powerpress-player.php';
    // Include, if not included already
    $rss_items = powerpress_get_news(POWERPRESS_FEED_NEWS, $items);
    echo '<div class="powerpress-news-dashboard">';
    echo '<ul>';
    if (!$rss_items) {
        echo '<li>' . __('Error occurred retrieving news.', 'powerpress') . '</li>';
    } else {
        $first_item = true;
        while (list($null, $item) = each($rss_items)) {
            $enclosure = $item->get_enclosure();
            echo '<li>';
            echo '<a class="rsswidget" href="' . esc_url($item->get_permalink(), $protocolls = null, 'display') . '" target="_blank">' . esc_html($item->get_title()) . '</a>';
            echo ' <span class="rss-date">' . $item->get_date('F j, Y') . '</span>';
            echo '<div class="rssSummary">' . esc_html(powerpress_feed_text_limit(strip_tags($item->get_description()), 150)) . '</div>';
            if ($enclosure && !empty($enclosure->link)) {
                $poster_image = '';
                $poster_tag = $item->get_item_tags('http://www.rawvoice.com/rawvoiceRssModule/', 'poster');
                if ($poster_tag && !empty($poster_tag[0]['attribs']['']['url'])) {
                    $poster_image = $item->sanitize($poster_tag[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
                }
                $embed = '';
                $embed_tag = $item->get_item_tags('http://www.rawvoice.com/rawvoiceRssModule/', 'embed');
                if ($embed_tag && !empty($embed_tag[0]['data'])) {
                    $embed = $embed_tag[0]['data'];
                }
                // Only show an episode with the latest item
                if ($first_item && $embed) {
                    if (preg_match('/width="(\\d{1,4})"/i', $embed, $matches) && count($matches) > 1) {
                        $max_width = $matches[1];
                        $embed = preg_replace('/width="/i', 'style="max-width: ' . $max_width . 'px;" width="', $embed);
                    }
                    $embed = preg_replace('/width="(\\d{1,4})"/i', 'width="100%"', $embed);
                    echo '<div class="powerpressNewsPlayer">';
                    echo $embed;
                    echo '</div>';
                } else {
                    if ($first_item) {
                        $EpisodeData = array();
                        $EpisodeData['type'] = $enclosure->type;
                        $EpisodeData['duration'] = $enclosure->duration;
                        $EpisodeData['poster'] = $poster_image;
                        $EpisodeData['width'] = '100%';
                        $EpisodeData['custom_play_button'] = powerpress_get_root_url() . 'play_audio.png';
                        $ext = powerpressplayer_get_extension($enclosure->link);
                        switch ($ext) {
                            case 'mp4':
                            case 'm4v':
                            case 'webm':
                                echo '<div class="powerpressNewsPlayer powerpressadmin-mejs-video">';
                                echo powerpressplayer_build_mediaelementvideo($enclosure->link, $EpisodeData);
                                echo '</div>';
                                break;
                            case 'mp3':
                            case 'm4a':
                                echo '<div class="powerpressNewsPlayer">';
                                echo powerpressplayer_build_mediaelementaudio($enclosure->link, $EpisodeData);
                                echo '</div>';
                                break;
                        }
                    }
                }
                //echo '<div style="clear: both;"></div>';
            }
            echo '</li>';
            $first_item = false;
        }
    }
    echo '</ul>';
    echo '<br class="clear"/>';
    echo '<div style="margin-top:10px;border-top: 1px solid #ddd; padding-top: 10px; text-align:center;">';
    echo __('Subscribe:', 'powerpress');
    echo ' &nbsp; ';
    echo '<a href="http://www.powerpresspodcast.com/feed/"><img src="' . get_bloginfo('wpurl') . '/wp-includes/images/rss.png" alt="' . __('Blog', 'powerpress') . '" /> ' . __('Blog', 'powerpress') . '</a>';
    echo ' &nbsp; ';
    echo '<a href="http://www.powerpresspodcast.com/feed/podcast/"><img src="' . get_bloginfo('wpurl') . '/wp-includes/images/rss.png" alt="' . __('Podcast', 'powerpress') . '" /> ' . __('Podcast', 'powerpress') . '</a>';
    echo ' &nbsp; ';
    echo '<a href="https://itunes.apple.com/us/podcast/blubrry-powerpress-community/id430248099/"><img src="' . powerpress_get_root_url() . '/images/itunes_modern.png" alt="' . __('iTunes', 'powerpress') . '" /> ' . __('iTunes', 'powerpress') . '</a>';
    //echo ' &nbsp; &nbsp; ';
    echo '</div>';
    echo '</div>';
}