javascript - SublimeVideo JavaScript

标签 javascript video hash

我一直在使用SublimeVideo ,而且我已经为我正在开发的网站做了很多工作。

我已经通过 SublimeVideo 在网站上以基本方式成功使用了 15-20 个视频,方法是在用户点击的页面上添加一个链接,点击后,视频会在 SublimeVideo 灯箱中打开并开始播放。

但现在,我需要为这些视频创建“较短的 URL”,这些视频可以通过打印出版物和电子邮件发送,并将用户带到网站查看,而不仅仅是视频文件。

理想情况下,我希望仅在单页网址中使用 id/data-uid 和主题标签,并让所选视频在灯箱中自动启动和播放。这似乎是不可能的(?)。

我可以选择在单个页面中隐藏视频标签,并让主题标签取消隐藏它并在 URL 中播放它。如果这一切都不能顺利进行,也许我会采用老式方法,为每个视频制作一个页面,然后将其嵌入到页面中。

无论如何,在浏览了所有文档页面、论坛并搜索网络后,我只找到了几个选项 - 这两个选项实际上都不起作用。我将它们粘贴在下面:

首先,这是我用于所有视频的 HTML 示例:

<p class=""><a href="#video1" class="sublime" data-autoresize="fit">video1 text link on page</a></p>

<video id="video1" data-uid="video1" title="video1 description" poster="/assets/images/video1.jpg" width="1084" height="574" style="display:none" data-autoresize="fit" preload="none">
    <source src="/assets/videos/video1.mp4" />
</video>

这本身就非常有效!我不想改变这一点。单击文本链接后,灯箱将打开并且视频可以完美播放。

因此,假设包含 15-20 个视频以及上述代码的页面位于:

http://example.com/resources/index.php

我想我可以简单地为第一个视频创建该 URL:

http://example.com/resources/index.php#video1

...或者更好...

http://example.com/resources#video1

...并对所有其他视频 ID 进行仿效。

为了让它发挥作用,我尝试过:

<script type="text/javascript">
    sublimevideo.ready(function() 
        {
        if (window.location.hash == '#video1') {
                             sublime('video1').play();
        } else 
        if (window.location.hash == '#video2') {
                             sublime('video2').play();
        } else 
        if (window.location.hash == '#video3') {
                             sublime('video3').play();
        }
    });     
</script>

...这不起作用。由于某种原因,它可以与页面上的第一个视频一起使用,但我所说的“工作”是指,它会取消隐藏它并使其可播放,而不是在灯箱中打开并自动播放。

然后我在共享文档区找到了这样的代码:

<script type="text/javascript">

    var hashtag = "#video1";
    var hashtag = "#video2";
    var hashtag = "#video3";

    if (document.location.hash == hashtag) {
      showTheVideo(hashtag);
    }

    function showTheVideo(hashtag) {
    }    
</script>

...但这也不起作用。

懂 JavaScript 的人可以帮我拼出它吗?

最佳答案

我会将解决问题的代码放在这里,希望有一天它能帮助其他人搜索并找到它。

将以下代码放在页面头部的...下方

<script type="text/javascript" src="//cdn.sublimevideo.net/js/UniqueIDprovidedInYourAccountGoesHere.js"></script>

...库(这是 SublimeVideo 在您的帐户区域中为您提供的随机字符/数字 .js),我终于能够解决上述详细问题(耶!!!)。

因此,使用与上面相同的示例,此 URL 现在可以按照我的需要工作(不仅将您带到资源页面,还可以在其灯箱中启动特定视频)。

http://example.com/resources.php#video=interview2

...并通过输入:

RewriteRule ^resources$ resources.php [L]

...在同一目录中的 .htaccess 文件中,我能够使用户更轻松地使用:

http://example.com/resources#video=interview2

据我了解,下面的 JavaScript 添加会查找哈希,然后查找“video=”,然后获取后面的内容,如果它在“a”标记中找到匹配的“id”,那么它告诉它通过在灯箱中启动该视频来执行 SublimeVideo 的操作。太棒了!

    <script type="text/javascript">

        $(document).ready(function () {

            var lochash    = location.hash.substr(1);
            var mylocation = lochash.substr(lochash.indexOf('video='))
                             .split('&')[0]
                             .split('=')[1];

            sublime.ready(function () {

                var lightbox = sublime.lightbox(mylocation);
                    lightbox.open();
            });
        });
    </script> 

这是 HTML 部分(供引用):

<p class=""><a href="#video2" id="interview2" class="sublime" data-autoresize="fit">video2 text link on page that i left as reference for the user in case they close the video that was launched from the publication</a></p>

<video id="video2" data-uid="video2" title="video2 description" poster="/assets/images/interview2.jpg" width="1084" height="574" style="display:none" data-autoresize="fit" preload="none">
    <source src="/assets/videos/interview2.mp4" />
</video>

另请注意:我通过反复试验发现,URL 中“#video=”后面的视频名称必须与“A”标签中的“ID”相同,而不是“video” “标签!因此,您会注意到两者之间的“id=”(并且需要)不同。 “video”标签中的“id=”与“href=”相同。

关于javascript - SublimeVideo JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25213030/

相关文章:

javascript - 从 React-Native 应用程序中的另一个类访问静态变量?

javascript - BigInt 的对数

iOS AVFoundation : Setting Orientation of Video

c# - UWP 应用中的视频编辑

jquery - 如何在 fancybox 和 videoJS 中制作响应式 html5 视频

class - 关于 Raku 中 EVAL 中的哈希绑定(bind)的问题

javascript - 将按顺序仅重复 2 次的数字推送到新数组中

javascript - 测试 Express 中间件

arrays - 在 Perl 中循环遍历数组的哈希值

ruby-on-rails - ruby 检查文件是否实际被修改的最佳方法是什么?