Flash视频没有出现在Facebook画布页面上

时间:2011-06-28 03:57:12

标签: asp.net flash facebook swfobject

此页面在本地请求时起作用(播放Flash影片), http://localhost:8080/flash.aspx

我也设置了url路由 http://localhost:8080/videos/也指示 http://localhost:8080/flash.aspx

如果我设置了以下Facebook应用程序设置:

---网站---

  1. 网站网址:http://localhost:8080/
  2. site domain:localhost
  3. --- facebook整合---

    1. 画布页面:http://apps.facebook.com/my_app/
    2. canvas url:http://localhost:8080/video/
    3. 当我请求页面时:http://apps.facebook.com/my_app - http://localhost:8080/flash.aspx加载到facebook画布(我可以看到我的测试文本), 但是,flash电影无法播放。

      这是我用来在flash.aspx上加载swf的jquery代码

      $(document).ready(function () {
          if (swfobject.hasFlashPlayerVersion("6.0.0")) {
              var att = { data: "flash/video.swf", width: "385", height: "312" };
              var par = { flashvars: "foo=bar" };
              var id = "video-container";
              swfobject.createSWF(att, par, id);
          }
      });
      

      当我要求时,为什么没有播放Flash影片的任何想法: http://apps.facebook.com/my_app/但在本地请求页面时确实可以播放?

2 个答案:

答案 0 :(得分:1)

使用flash文件的绝对路径修复它。 http://www.mysite.com/flash/video.swf

答案 1 :(得分:1)

我不知道域名问题(这些问题超出了SWFObject的范围),但您的代码可以稍微改进一下。您将整个块包装在jQuery ready函数中,但之后您还使用了addDomLoadEvent。这是多余的。您可以简化为:

$(document).ready(function () {
    if (swfobject.hasFlashPlayerVersion("6.0.0")) {
        var att = { data: "flash/video.swf", width: "385", height: "312" };
        var par = { flashvars: "foo=bar" };
        var id = "video-container";
        var myObject = swfobject.createSWF(att, par, id);
    }
 });

或者您可以使用SWFObject的embedSWF函数,它具有内置的domload检测功能:

var flashvars = { foo: "bar" };
var par = {};
var att = {};
swfobject.embedSWF("flash/video.swf", "video-container", "385", "312", "6.0.0", false, flashvars, par, att);