Facebook 嵌入式视频 api 是否仍支持 removeListener()?
does facebook embedded video api still support removeListener()?
根据 facebook 文档 - https://developers.facebook.com/docs/plugins/embedded-video-player/api ,我们订阅玩家事件
var handleDesktopEvents = function (msg) {
if (msg.type === 'video') {
var player = msg.instance;
var playHandler = player.subscribe('startedPlaying', function() {
// Video started playing ...
player.unmute();
console.log('detected video playing');
ga_virtual_pagehit(msg.id);
console.log('sent event to GA');
playHandler.removeListener('startedPlaying');
// playHandler.release();
});
console.log('detected video ready');
player.play();
FB.Event.unsubscribe('xfbml.ready', handleDesktopEvents, handleDesktopEx);
}
};
var handleDesktopEx = function () {
// Handle pause() and exceptions
console.log('detected pause');
};
FB.Event.subscribe('xfbml.ready', handleDesktopEvents, handleDesktopEx);
似乎 removeListener()
在 subscribe()
返回的令牌上不可用。通过调试器,我们看到令牌上有一个方法 release()
可用。应该这样用吗?现在正式了吗?
我是不是做错了什么?
release() 方法曾经存在并且可能仍然存在,除非 FB 再次更改某些内容。它做了 removeListen() 应该做的事情。
根据 facebook 文档 - https://developers.facebook.com/docs/plugins/embedded-video-player/api ,我们订阅玩家事件
var handleDesktopEvents = function (msg) {
if (msg.type === 'video') {
var player = msg.instance;
var playHandler = player.subscribe('startedPlaying', function() {
// Video started playing ...
player.unmute();
console.log('detected video playing');
ga_virtual_pagehit(msg.id);
console.log('sent event to GA');
playHandler.removeListener('startedPlaying');
// playHandler.release();
});
console.log('detected video ready');
player.play();
FB.Event.unsubscribe('xfbml.ready', handleDesktopEvents, handleDesktopEx);
}
};
var handleDesktopEx = function () {
// Handle pause() and exceptions
console.log('detected pause');
};
FB.Event.subscribe('xfbml.ready', handleDesktopEvents, handleDesktopEx);
似乎 removeListener()
在 subscribe()
返回的令牌上不可用。通过调试器,我们看到令牌上有一个方法 release()
可用。应该这样用吗?现在正式了吗?
我是不是做错了什么?
release() 方法曾经存在并且可能仍然存在,除非 FB 再次更改某些内容。它做了 removeListen() 应该做的事情。