diff --git a/ext/handle_video/theme.php b/ext/handle_video/theme.php
index cd0e54f6..076b4d56 100644
--- a/ext/handle_video/theme.php
+++ b/ext/handle_video/theme.php
@@ -4,17 +4,13 @@ declare(strict_types=1);
namespace Shimmie2;
+use function MicroHTML\{A, BR, VIDEO, SOURCE, emptyHTML};
+
class VideoFileHandlerTheme extends Themelet
{
public function display_image(Page $page, Image $image)
{
global $config;
- $ilink = $image->get_image_link();
- $thumb_url = make_http($image->get_thumb_link()); //used as fallback image
- $mime = strtolower($image->get_mime());
- $autoplay = $config->get_bool(VideoFileHandlerConfig::PLAYBACK_AUTOPLAY);
- $loop = $config->get_bool(VideoFileHandlerConfig::PLAYBACK_LOOP);
- $mute = $config->get_bool(VideoFileHandlerConfig::PLAYBACK_MUTE);
$width = "auto";
if ($image->width > 1) {
@@ -25,31 +21,31 @@ class VideoFileHandlerTheme extends Themelet
$height = $image->height."px";
}
- $html = "Video not playing? Click here to download the file.
";
+ $html = emptyHTML(
+ "Video not playing? ",
+ A(['href' => $image->get_image_link()], "Click here"),
+ " to download the file.",
+ BR(),
+ VIDEO(
+ [
+ 'controls' => true,
+ 'class' => 'shm-main-image',
+ 'id' => 'main_image',
+ 'alt' => 'main image',
+ 'poster' => make_http($image->get_thumb_link()),
+ 'autoplay' => $config->get_bool(VideoFileHandlerConfig::PLAYBACK_AUTOPLAY),
+ 'loop' => $config->get_bool(VideoFileHandlerConfig::PLAYBACK_LOOP),
+ 'muted' => $config->get_bool(VideoFileHandlerConfig::PLAYBACK_MUTE),
+ 'style' => "height: $height; width: $width; max-width: 100%; object-fit: contain; background-color: black;",
+ 'onloadstart' => 'this.volume = 0.25',
+ ],
+ SOURCE([
+ 'src' => $image->get_image_link(),
+ 'type' => strtolower($image->get_mime())
+ ])
+ )
+ );
- //Browser media format support: https://developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats
-
- if (MimeType::matches_array($mime, VideoFileHandler::SUPPORTED_MIME)) {
- if ($mime == MimeType::WEBM) {
- //Several browsers still lack WebM support sadly: https://caniuse.com/#feat=webm
- $html .= "";
- }
-
- $autoplay = ($autoplay ? ' autoplay' : '');
- $loop = ($loop ? ' loop' : '');
- $mute = ($mute ? ' muted' : '');
-
- $html .= "
-
-
- ";
- } else {
- //This should never happen, but just in case let's have a fallback..
- $html = "Video type '$mime' not recognised";
- }
$page->add_block(new Block("Video", $html, "main", 10));
}
}