示例#1
0
/**
 * Vroom callback
 * @return void
 */
function elgg_file_viewer_vroom()
{
    $file_guids = (array) elgg_get_config('elgg_file_viewer_file_guids');
    $file_guids = array_unique($file_guids);
    foreach ($file_guids as $guid) {
        $entity = get_entity($guid);
        if (!$entity instanceof ElggFile) {
            continue;
        }
        $entity_mime = $entity->getMimeType();
        list($base_type, $ext) = explode('/', $entity_mime);
        $mimes = [];
        switch ($base_type) {
            case 'video':
                $mimes = ['video/mp4', 'video/webm', 'video/ogv'];
                break;
            case 'audio':
                $mimes = ['audio/mpeg', 'audio/ogg', 'video/wav'];
                break;
        }
        foreach ($mimes as $mime) {
            if ($mime == $entity_mime) {
                continue;
            }
            list(, $ext) = explode('/', $mime);
            $url = elgg_file_viewer_get_media_url($entity, $ext);
            if (!$url) {
                elgg_file_viewer_convert_file($entity, $ext);
            }
        }
    }
}
示例#2
0
        $mimes = array_unique([$entity_mime, 'video/mp4', 'video/webm', 'video/ogv']);
        $attr['poster'] = $entity->icontime ? $entity->getIconURL('master') : elgg_get_simplecache_url('elgg_file_viewer/video.jpg');
        break;
    case 'audio':
        $tag = 'audio';
        $mimes = array_unique([$entity_mime, 'audio/mpeg', 'audio/ogg', 'video/wav']);
        $attr['poster'] = $entity->icontime ? $entity->getIconURL('master') : elgg_get_simplecache_url('elgg_file_viewer/audio.jpg');
        break;
}
$sources = '';
foreach ($mimes as $mime) {
    if ($mime == $entity_mime) {
        $url = elgg_get_download_url($entity);
    } else {
        list(, $ext) = explode('/', $mime);
        $url = elgg_file_viewer_get_media_url($entity, $ext);
    }
    if ($url) {
        $sources .= elgg_format_element('source', ['src' => $url, 'type' => $mime]);
    }
}
elgg_load_css('videojs');
?>
<div class="elgg-col elgg-col-1of1 clearfix">
	<?php 
echo elgg_format_element($tag, $attr, $sources);
?>
</div>
<script>
	require(['elgg_file_viewer/apps/videojs'], function (videojs) {
		videojs('<?php 
示例#3
0
            $webm = elgg_file_viewer_get_media_url($entity, 'webm');
            $ogv = elgg_file_viewer_get_media_url($entity, 'ogv');
            echo <<<HTML
\t\t<video {$attr}>
\t\t\t<source src="{$mp4}" type="video/mp4" />
\t\t\t<source src="{$webm}" type="video/webm" />
\t\t\t<source src="{$ogv}" type="video/ogg" />
\t\t</video>
HTML;
        } else {
            echo "<video src=\"{$source}\" {$attr}></video>";
        }
        break;
    case 'audio':
        if ($ffmpeg) {
            $mpeg = elgg_file_viewer_get_media_url($entity, 'mpeg');
            $wav = elgg_file_viewer_get_media_url($entity, 'wav');
            $ogg = elgg_file_viewer_get_media_url($entity, 'ogg');
            echo <<<HTML
\t\t<audio {$attr}>
\t\t\t<source src="{$ogg}" type="audio/ogg" />
\t\t\t<source src="{$mpeg}" type="audio/mpeg" />
\t\t\t<source src="{$wav}" type="audio/wav" />
\t\t</audio>
HTML;
        } else {
            echo "<audio src=\"{$source}\" {$attr}></audio>";
        }
        break;
}
echo '</div>';