Mediaelement.js:如何更改海报图像
Mediaelement.js: how do I change the poster image?
我正在尝试通过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;
}
嗯,由于这仍然是开放的,我建议采取完全不同的方法。
- 设置4个html视频对象,每个对象都具有所需的属性
- 使用javascript切换哪一个可见并播放
希望能有所帮助!
采用完全不同的方法。
方法1:
<video controls="controls" id="Player" height="200" width="600">
<source src="video.mp4">
<object id="Player" height=200" width="600" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">
<!-- Windows Media Player Backup For IE -->
<param name="Showcontrols" value="True">
<param name="URL" value="video.mp4">
<param name="AllowShuffle" value="Yes">
<param name="autoStart" value="True">
<param name="Volume" value="100">
<param name="EnableContextMenu" value="False">
<!-- For browsers that do not support HTML5 Video -->
<embed src="video.mp4" autoplay="autoplay" controls="controls" height="200" width="600" id="Player">
</object>
</video>
(<object>
标签用于IE,因为HTML5视频并不总是正确呈现,或者有时不允许更改视频源)
在所有浏览器中更改源代码(IE除外,它不允许更改
<video>
等的src)是为了访问document.getElementById("player").src="newvideo.mp4"
对于Internet Explorer,代码为:
Player.url = "newvideo.mp4"
唯一可能会带来额外问题的浏览器是Safari。
方法2:(也可以与jQuery一起使用!)
- 将视频放入自己的
<span id="myvideo2">
或<div id="myvideo2">
标签中。确保提供id,例如"myvideo2" - 使用
document.getElementById("myvideo2").innerHTML= /*Escaped Javascript for the HTML code for the video with new source"*/
更改innerHTML - 应适用于所有浏览器
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- nodejs-expressjs上传图像并显示它们
- 使用JSP从服务器检索和显示图像
- 角度:在ng重复上切换图像
- 画廊图像未显示
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- Javascript排序的图像弹出窗口..可以't单独弹出
- 画布数据到图像
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- 使图像在单击时展开到不大于浏览器
- Html页面上的多个Base64图像和平滑加载
- UIAutomation放大图像
- 如何在视频上显示海报图像使用Jquery结束
- 如何定位“隐藏”的 iframe?(应用程序:链接到嵌入“隐藏的海报图像”嵌入的 Youtube 视频的起始位置)
- Mediaelement.js:如何更改海报图像
- 海报图像在视频中不起作用,azure媒体播放器的1.5.0版本更新
- 如何在jquery中链接另一个HTML页面到海报图像
- 显示海报图像或暂停按钮时,HTML5视频暂停
- 视频海报图像不显示,除非点击移动
- 如何获取 MP3 流海报图像