0

在我的页面上,我有一个 YouTube 视频的缩略图作为图像,我想在用户单击图像后使用prettyPhoto播放视频。我怎样才能做到这一点?

这是我的图像代码:

<div class="video" id="videoPlaceHolder" style="position:relative;">
  <a rel="prettyPhotos" href="https://www.youtube.com/embed/<?php getFirstFeatureVideoURL(); ?>">
    <img style="background:url(<?php getFirstFeatureVideoThumbnail() ?>); background-repeat:no-repeat; background-size:cover;  -moz-background-size: cover;" src="/images/ytIndex_overlay.png" onClick="addPlayer();" />
  </a>
</div>

php 函数getFirstFeatureVideoURL抓取并返回第一个视频的“正确”URL(我已经单独检查过,视频播放没有任何问题)。另一个调用的函数getFirstFeatureVideoThumbnail返回视频的缩略图。我已经准备好所有插件prettyPhoto,到目前为止,它可以完美地处理所有图像。但是,当我尝试通过单击图像播放此视频时,它给了我错误:

Image cannot be loaded. Make sure the path is correct and the image exists

为什么我会收到此错误?

4

3 回答 3

1

它期望href是一个 URL。您不能在这样的 URL 中嵌入 PHP 代码。

于 2012-07-20T22:02:17.583 回答
0

您要获取的缩略图版本是什么。我猜您尝试检索标准清晰度缩略图或最大分辨率缩略图。这两个视频 ID 都不存在:Id_kGL3M5Cg

使用此工具检查它是否存在:YouTube 视频信息生成器

我得到了结果,标准清晰度缩略图不适用于此视频。最大分辨率缩略图不适用于此视频。

您可以使用 . 检查图像是否存在get_headers。查看本教程中代码的缩略图部分:如何使用 PHP 获取 YouTube 视频信息

于 2013-12-15T07:31:19.950 回答
-1

好的,所以我最终在我的 PHP 函数中生成了 < a > 和 < img > 标签,如下所示,这解决了我的问题....

function getFeatureVideo()
{
$xml = simplexml_load_file('https://gdata.youtube.com/feeds/api/playlists/A4F160EDF82713A2?v=2');
.
.
.
.
$media = $entry->children('http://search.yahoo.com/mrss/');

  $attrs = $media->group->player->attributes();
  $watch = $attrs['url'];

  $attrs = $media->group->thumbnail[1]->attributes();
  $thumbnail = $attrs['url'];

  $result .='<a rel="prettyVideos"  href="'.$watch.'">
                <img style="background:url('.$thumbnail.'); background-repeat:no-repeat; background-size:cover;  -moz-background-size: cover;" src="/images/ytIndex_overlay.png" onClick="addPlayer();" />
       </a> ';      

echo $result;                    
}
于 2012-07-25T19:53:38.857 回答