2

我遇到了一个问题,fancybox 在 iphone 4 上不显示 Brightcove 视频,而它在 Firefox、IE 7、IE8、IE9、Safari 和 Chrome 以及 Android 手机上工作。

我有js来填充视频的fancybox,如下所示,

$(".myfancybox").fancybox({
    'showCloseButton'   : true,
    'titlePosition'         : 'inside',
    'titleFormat'       : formatVideoTitle,
    'content'       : formatVideoContent,
    'scrolling'     : 'no',
    'autoScale'     : true
});

名为 formatVideoContent 的函数将获取 html(brightcove 视频 html 代码,如下,需要 videoPlayer、playerID 和 Key)并将其传递给“content”参数。

<object id="flashObj" width="486" height="412" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,47,0" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
<param value="http://c.brightcove.com/services/viewer/federated_f9?isVid=1" name="movie">
<param value="#FFFFFF" name="bgcolor">
<param value="@videoPlayer=xxx&playerID=xxx&playerKey=xxx&domain=embed&dynamicStreaming=true" name="flashVars">
<param value="http://admin.brightcove.com" name="base">
<param value="false" name="seamlesstabbing">
<param value="true" name="allowFullScreen">
<param value="true" name="swLiveConnect">
<param value="always" name="allowScriptAccess">
</object>

我知道iOS不支持.flv或.mov,但我在fancybox中使用的brightcove视频html代码在iphone上的常规html页面中工作,只是在插入fancybox后在iphone上不起作用。Fancybox 版本是 1.3.4,jQuery 是 1.4.4。

有没有人尝试通过 iphone 上的 fancybox 播放 Brightcove 视频?感谢您的任何提示。

4

2 回答 2

0

这是 Brightcove 的 Flash 播放器的简单嵌入代码。它不适用于iOS。您需要使用他们的 javascript 代码,因为正是该 javascript 决定是否将对象替换为适当的 Flash 或 HTML 播放器。看起来像这样:

<object id="bcPlayer" class="BrightcoveExperience">
  <param name="bgcolor" value="#FFFFFF" />
  <param name="width" value="480" />
  <param name="height" value="270" />
  <param name="playerID" value="xxxx" />
  <param name="playerKey" value="xxxx" />
  <param name="isVid" value="true" />
  <param name="isUI" value="true" />
  <param name="dynamicStreaming" value="true" />  
  <param name="@videoPlayer" value="xxxx" />
</object>

您需要在页面中包含 Brightcove javascript:

<script type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script>

您需要brightcove.createExperiences()在插入播放器代码后调用。

这有效:

<script type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script>
<script type="text/javascript">
formatVideoContent = '<object id="myExperience1353062063001" class="BrightcoveExperience">';
bcVideo += '  <param name="bgcolor" value="#FFFFFF" />';
bcVideo += '  <param name="width" value="400" />';
bcVideo += '  <param name="height" value="225" />';
bcVideo += '  <param name="playerID" value="1150189326001" />';
bcVideo += '  <param name="playerKey" value="AQ~~,AAAA0vRfoQE~,baHF9-H5aHJPAl3cZ-KjgHH9A7WtanGe" />';
bcVideo += '  <param name="isVid" value="true" />';
bcVideo += '  <param name="isUI" value="true" />';
bcVideo += '  <param name="dynamicStreaming" value="true" />';
bcVideo += '  <param name="@videoPlayer" value="1353062063001" />';
bcVideo += '</object>';
bcVideo += '<scr'+'ipt>brightcove.createExperiences();</scr'+'ipt>';
$(document).ready( function() {
  $(".myfancybox").fancybox({
    showCloseButton: true,
    content: bcVideo,
    scrolling: 'no',
    width: '400',
    height: '225'
  });
});
</script>
于 2012-07-11T13:06:00.357 回答
0

....我在fancybox 中使用的相同brightcove 视频html 代码在iphone 上的常规html 页面中工作

iframe您可以使用此类代码创建一个单独的 html 页面,并使用以下脚本类型的内容在 fancybox 中打开它:

$(".myfancybox").fancybox({
    'showCloseButton': true,
    'titlePosition' : 'inside',
    'titleFormat'   : formatVideoTitle,
 // 'content'       : formatVideoContent,
    'scrolling'     : 'no',
 // 'autoScale'     : true,
    'width'         : 486,
    'height'        : 412,
    'type'          : 'iframe'
});
于 2012-07-11T03:01:27.920 回答