Javascript Vimeo嵌入负载自动静音
我有一个vimeo嵌入式视频,但似乎无法在加载时集成静音 这是我的视频代码Javascript Vimeo嵌入负载自动静音,javascript,html,vimeo,vimeo-api,vimeo-player,Javascript,Html,Vimeo,Vimeo Api,Vimeo Player,我有一个vimeo嵌入式视频,但似乎无法在加载时集成静音 这是我的视频代码 <div id="vimeo"> </div> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> <script src="https://f.vimeocdn.com/js/froogaloop2.min.js"></scri
<div id="vimeo"> </div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="https://f.vimeocdn.com/js/froogaloop2.min.js"></script>
而js使用的是
<script>
// URL of the video
var videoUrl = 'http://www.vimeo.com/76979871?api=1?player_Id=vimeoyo';
var endpoint = 'http://www.vimeo.com/api/oembed.json';
var callback = 'embedVideo';
var url = endpoint + '?url=' + encodeURIComponent(videoUrl)+ '&autoplay=true' + '&callback=' + callback + '&width=420';
function embedVideo(video) {
document.getElementById('vimeo').innerHTML = unescape(video.html);
}
function init() {
var js = document.createElement('script');
js.setAttribute('type', 'text/javascript');
js.setAttribute('src', url);
document.getElementsByTagName('head').item(0).appendChild(js);
var player = 'vimeoyo';
player.api('setVolume', 0);
}
window.onload = init;
</script>
//视频的URL
var videoUrl=http://www.vimeo.com/76979871?api=1?player_Id=vimeoyo';
var端点http://www.vimeo.com/api/oembed.json';
var callback='embeddevideo';
var url=endpoint+'?url='+encodeURIComponent(videoUrl)+'&autoplay=true'+'&callback='+callback+'&width=420';
功能嵌入式视频(视频){
document.getElementById('vimeo').innerHTML=unescape(video.html);
}
函数init(){
var js=document.createElement('script');
js.setAttribute('type','text/javascript');
js.setAttribute('src',url);
document.getElementsByTagName('head')。项(0)。appendChild(js);
var player='vimeoyo';
player.api('setVolume',0);
}
window.onload=init;
我还有一个问题,那就是视频不是iframe
编辑:有一个使用iframe静音的答案。这里
但经过测试,使用这种小提琴,它似乎也不会使视频静音 由于您是从vimeo api手动创建
iframe
,因此只应在加载iframe后设置音量。因此,在embeddevideo
函数中,将HTML插入div
后,必须获得div
的第一个子项(它是iframe
),并向其添加onload
事件
加载iframe后,必须使用froogaloop的$f
函数将iframe封装到其库中,然后可以使用api
方法将卷设置为零
在您的示例中,您试图在字符串
中调用api
方法,但它永远不会起作用
function embedVideo(video) {
var div = document.getElementById('vimeo');
div.innerHTML = unescape(video.html);
var ifr = div.firstChild;
ifr.addEventListener('load', function(e) {
var player = $f(ifr);
player.api('setVolume', 0);
});
}
function init() {
var js = document.createElement('script');
js.setAttribute('type', 'text/javascript');
js.setAttribute('src', url);
document.getElementsByTagName('head').item(0).appendChild(js);
}
我已经创建了一个,您的示例正在运行。**以下是我的解决方案:
(您需要自己的播放/暂停静音/取消静音图标)
花了好几年的时间尝试,但似乎什么都不管用
我只是想用简单的播放/暂停静音/取消静音控件(而不是默认控件)将Vimeo autoplay静音(第0卷)
(如果您想重新添加默认控件但保持静音,请删除“?background=1”。默认情况下,background=1将设置video.vimeo(“setVolume”,0)并隐藏控件,因此我还添加了加载时静音,而不设置background=1)
另请注意:“您需要在web服务器上运行,而不是直接在浏览器中打开文件。Flash和JS安全限制将阻止API在本地运行。”
是否尝试为
player.api('setVolume',0)播放不同的值js
文件上的code>?我已经尝试过了,但是我无法让任何api工作,即使我在视频URL中输入了?api=1。当涉及到froogaloop
时,有两件重要的事情:给你的iframe
一个id
,并将其作为player\u id=%%id%%
添加到Vimeo src url中,并在该url字符串中包含api=1
。还有,你的iframe在哪里?它不是与JS一起添加的,也不是在HTML中添加的……JSFIDLE不会加载oEmbed示例的代码。然而,在最基本的层面上,这是从另一个SO问题中提取出来的,但它也不会沉默。谢谢,太棒了!我绞尽脑汁想弄明白为什么它没有静音!
//load video muted
var video = $("#myvideo");
video.vimeo("play");
video.vimeo("setVolume", 0);
//toggle play/pause
$('#play-pause').click(function() {
$(this).toggleClass('play');
if ($(this).hasClass('play')) {
//pause video
video.vimeo("pause");
$(this).css('background', 'url("http://unclebarts.co.uk/wp-content/themes/bungabunga_bootstrap/img/video-controls/play.png") no-repeat');
} else {
//unpause video
video.vimeo("play");
$(this).css('background', 'url("http://unclebarts.co.uk/wp-content/themes/bungabunga_bootstrap/img/video-controls/pause.png") no-repeat');
}
});
//toggle mute/unmute
$('#mute-unmute').click(function() {
$(this).toggleClass('mute');
if ($(this).hasClass('mute')) {
//unmute video
video.vimeo("setVolume", 1);
$(this).css('background', 'url("http://unclebarts.co.uk/wp-content/themes/bungabunga_bootstrap/img/video-controls/volume.png") no-repeat');
} else {
//mute video
video.vimeo("setVolume", 0);
$(this).css('background', 'url("http://unclebarts.co.uk/wp-content/themes/bungabunga_bootstrap/img/video-controls/mute.png") no-repeat');
}
});