javascript - Mediaelement.js:如何更改海报图片?

标签 javascript mediaelement.js

我正在尝试通过 JS 更改视频源。这主要是工作。

var basename = "video/whatever";
$("#myvideo")[0].setSrc([
    {type: "video/mp4", src: basename + ".mp4"},
    {type: "video/webm", src: basename + ".webm"},
    {type: "video/ogg", src: basename + ".ogv"}
]);

所以第一个问题:当我更改源时,暂停按钮显示而不是播放,并且大覆盖播放按钮不显示,即使它已暂停。我已经尝试在 setSrc 调用之前和之后发送 stop() 和 pause() 以及 setCurrentTime(0) 的各种组合,但没有成功。

更重要的问题:我还没有找到改变视频海报图片的方法。我期待在 API 中看到一种方法来更改它,因为我希望它也针对 Flash/Silverlight 回退进行更新。我尝试只更改视频元素上的海报属性,但似乎没有成功。

最佳答案

我知道这是一个相当古老的问题,但我想我会发布对我有用的答案。

var basename = "video/whatever";
// Where videoPlayer is the video element.
if(!videoPlayer.paused) {
    videoPlayer.pause();
}
setTimeout(function(){
    // Set poster image
    $('.mejs-poster').empty().append('<img src="'+ basename + '.jpg"/>').show();

    // Set video source
    videoPlayer.setSrc([
        {type: "video/mp4", src: basename + ".mp4"},
        {type: "video/webm", src: basename + ".webm"},
        {type: "video/ogg", src: basename + ".ogv"}
    ]);
}, 0);

这里很好地解释了 setTimeout 的作用:https://stackoverflow.com/a/779785/1425269 .

您可能还需要一些用于海报图像的 CSS,具体取决于您使用的主题。

.mejs-poster img {
    padding: 0;
    border: 0;
    width: 100%;
    height: auto;
}

关于javascript - Mediaelement.js:如何更改海报图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9542653/

相关文章:

javascript - 在 JavaScript 中创建干净的、可继承的对象

javascript - 在 typescript/Angular 2 中从 byteArray 创建 ppt 或 pptx blob

javascript - 如何根据该行中的第一个字符将文本区域元素的每一行向左或向右对齐?

javascript - 如何在视频端调用函数? (HTML5 和 mediaelementjs)

html - 不支持 "type"的指定 "video/mp4"属性

mediaelement.js - Flash 回退不适用于 Windows XP SP2 上的 IE7

javascript - 将鼠标悬停在另一个元素上时显示一个元素并进行调整

jquery - 是否有可用于在我的网站中进行视频修剪/剪切的 flash/JavaScript 库?

javascript - JavaScript 编码在任何特定的服务器语言上工作得更好吗?

javascript - 在 ASP.NET MVC 站点的 Bootstrap 文件输入插件中读取服务器响应