我通过通用嵌入代码在页面上有一个Vimeo视频:
<div class="video">
<iframe src="http://player.vimeo.com/video/VIDEO_ID" width="100%" height="100%" frameborder="0"></iframe>
</div>
Run Code Online (Sandbox Code Playgroud)
我正在使用Vimeo的JavaScript API(http://vimeo.com/api/docs/player-js)video在视频开始播放时以及视频暂停时为div 添加一个类(这会使div加倍)或完成后,该类被删除,将视频播放器大小重置为其原始大小.
这在桌面/笔记本电脑(Firefox)上按预期工作,但在Android手机上,iframe(一旦它的尺寸翻倍)不会恢复到之前的大小(它是一个百分比,所以它应该适应它的video容器),这导致iframe与其父div重叠.
首先我认为它是iframe的100%宽度和高度,因此我$('#video1').attr('width', 400);在视频停止时使用iframe指定了固定的宽度和高度,但iframe保持不变(它保持两倍的大小).
有没有人知道为什么Android会这样做,我如何强制iframe调整大小?
我正在使用SwipeView(http://cubiq.org/swipeview)在触摸屏设备上创建可滑动的幻灯片.这对图像来说很简单,但我想在幻灯片中加入Vimeo视频.不幸的是,因为iFrame的捕捉你刷卡输入自己(我相信这是发生了什么,至少发生),一旦你在视频播放幻灯片,除非你的分页挖掘你再也不能刷卡远离它来了.这是不可接受的.
我的解决方案是在页面的某处隐藏视频(使用display:none;或者height:0;或者其他任何工作),并使用幻灯片中的图像和触发视频播放的点击事件.即使视频被隐藏,当它播放时它应该全屏播放(至少在iPhone上).
当我在桌面浏览器上测试它时,这项技术运行正常,但它在iPhone上表现得很奇怪.出于测试目的,视频显示在幻灯片下方.如果我加载页面并点击幻灯片,它什么都不做.但是,如果我通过点击实际的视频播放器播放视频,一旦视频关闭,我可以通过点击幻灯片再次播放视频.基本上,一旦通过播放器播放视频,我就可以通过API播放视频,但不能先使用播放器.
这是我的代码:
// Append the "hidden" video player to the page
$('.slider-container').append("<div class='mobile-video-slide'><iframe id='slideshow-player' src='//player.vimeo.com/video/81295681?title=0&byline=0&portrait=0&color=8bd4ee&api=1&player_id=slideshow-player' width='500' height='281' frameborder='0' webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div>");
// Get the player object
var iframe = $('#slideshow-player')[0],
player = $f(iframe);
// When the video is ready
player.addEvent('ready', function() {
// Add the click event to the slide
$('#play-video').on('click', function() {
// Play the video
player.api('play');
// Don't jump the page
return false;
});
});
Run Code Online (Sandbox Code Playgroud)
我已经通过测试确定了player.ready事件正常工作,并且图像的点击事件正常工作.问题似乎完全在于player.api('play')电话中.任何帮助,或实现这一点的替代方法将不胜感激.
我试图从Vimeo Api中检索该字段的值,我已经尝试了这里提到的所有可能的解决方案.有人能告诉我如何分别从缩略图和网址对象中检索thumnail和url吗?
array(1) {
[0]=>
stdClass Object (
[allow_adds] => 1
[embed_privacy] => anywhere
[id] => 123456789
[is_hd] => 0
[is_transcoding] => 0
[license] => 0
[privacy] => anybody
[title] => Soap Opera
[description] =>
[upload_date] => 2014-02-20 03:03:50
[modified_date] => 2014-02-20 19:06:05
[number_of_plays] => 1
[number_of_likes] => 0
[number_of_comments] => 0
[width] => 600
[height] => 480
[duration] => 32
[owner] => stdClass Object (
[display_name] => blah
[id] => 12345678
[is_plus] => 0
[is_pro] => 1
[is_staff] => …Run Code Online (Sandbox Code Playgroud) 如何将嵌入的Vimeo视频重置为播放后的onload状态?
Vimeo API提供了卸载方法
player.api("unload")
Run Code Online (Sandbox Code Playgroud)
但它不适用于非闪存播放器.
vimeo ×3
vimeo-player ×3
froogaloop ×2
javascript ×2
android ×1
api ×1
iframe ×1
ios ×1
jquery ×1
object ×1
php ×1
stdclass ×1
swipeview ×1