0

我在这方面取得了很大进展,并希望在 chromecast 接收器上实现“隐形播放器”,如下所述:Deezer 隐形播放器

我正在运行我的演示应用程序,并且能够将我的访问令牌从发送方传递给接收方,并且我的令牌已过期。像这样实例化 DZ 播放器:

DZ.init({
                    appId  : deezer_app_id,
                    channelUrl : deezer_channel_url,
                    player : {
                        onload : onPlayerLoaded,
                        token : {
                            accessToken:event.message.accessToken,
                            expire:event.message.expire
                        }
                    }
                });

onPlayerLoaded 函数暂时只记录一条消息。

我目前得到:

Unsafe JavaScript attempt to access frame with URL http://mydomain/chrome/myreceiver.html from frame with URL http://www.deezer.com/es/plugins/player.php?channel=http://Mydomain/chrome/channel.php&app_id=IDVALUE&emptyPlayer=true. Domains, protocols and ports must match.
 external-v00202097.js:40
FB.getLoginStatus() called before calling FB.init(). vb.js:56
Flash is not installed or is too old vb.js:56
Unsafe JavaScript attempt to access frame with URL http://mydomain/chrome/myreceiver.html from frame with URL http://static.ak.facebook.com/connect/xd_arbiter.php?version=27#channel=f3a…Ffb_xd_fragment%23xd_sig%3Df2d6a19d8%26&origin=http%3A%2F%2Fwww.deezer.com. The frame requesting access set 'document.domain' to 'facebook.com', but the frame being accessed did not. Both must set 'document.domain' to the same value to allow access.
 xd_arbiter.php:18
Unsafe JavaScript attempt to access frame with URL http://Mydomain/chrome/myreceiver.html from frame with URL https://s-static.ak.facebook.com/connect/xd_arbiter.php?version=27#channel=…Ffb_xd_fragment%23xd_sig%3Df2d6a19d8%26&origin=http%3A%2F%2Fwww.deezer.com. The frame requesting access has a protocol of 'https', the frame being accessed has a protocol of 'http'. Protocols must match.

现在第一个没有意义,因为我将我的 channelURL 设置为相同的域,通过检查器查看我可以保证在 channelURl 和 chrome cast 接收器上我们有相同的 document.domain 。

第二个错误似乎来自 deezer 在 Flash 中加载某些内容(很奇怪,因为示例中没有说明 Flash 中的任何内容)。

第三个错误是 deezer 出于某种原因调用 FB。

我知道通过 iframe 的 youtube api 已经可以与 chromecast 一起使用,所以我认为这是可能的,但是 flash 问题和跨域似乎是一个问题。

有什么建议吗?

4

2 回答 2

1

我对 Deezer 不熟悉,因此无法评论与 Deezer 相关的问题,但“Unsdafe ...”消息也可能是由于尝试使用 file:// *引起的;这是 Chrome 中的一项额外安全措施。另外,iframe 的 sanbox 属性是什么?它是否包括“允许同源”?

于 2013-10-20T23:24:31.297 回答
1

关于域,当您在http://developers.deezer.com上为您的应用程序指定的域包含 http:// 时,有时您会收到错误,因为它不应该包含。

关于 Flash,Deezer 播放器基于 Flash 进行加密,因此您需要安装它才能使其工作。

Facebook 包含在 Deezer 播放器中(用于共享、登录目的),当您的页面在 iframe 中加载时,您会收到警告。您可以忽略这些警告。

于 2013-10-21T10:30:28.423 回答