我正試圖爲移動設備構建視頻/圖像滑塊,並使用Brightcove來顯示我的視頻。是否可以對Apple設備上的Brightcove事件做出反應?
雖然由於Brightcove版本的侷限性,我很努力讓自己的滑塊在播放視頻後工作,因爲我刪除了疊加層,並且Brightcove插入了一個Iframe,它禁用了我幾乎所有的觸摸事件通過hammer.js處理)。
讓我告訴你我的代碼:
滑塊標記:
<div id="wrapper">
<div class='slide'>
//Brightcove Player get's inserted here. Images are displayed via background
</div>
<div class='slideprevious'>
</div>
<div class='slidefollowing'>
</div>
</div>
Brightcove的初始化:
var addVideo = function(){
$('.slide').append('<div id="tsVideoPlayer"></div>');
tsCreatePlayer('tsVideoPlayer', slides.eq(num).data('video-id'), 'XXXXXXXX');
if(typeof bcPlayer === 'undefined'){
$.when(
//asynchronous loading of JS
$.getScript("http://admin.brightcove.com/js/BrightcoveExperiences_all.js"),
$.getScript("/xxx/xxx/brightcove_video.js"),
$.Deferred(function(deferred){
$(deferred.resolve);
})
).done(function(){
addVideo();
});
} else {
addVideo();
}
事件處理:
function getPlayerId(data) {
for (var prop in data)
return prop;
}
var player = bcPlayer.getExperience(getPlayerId(bcPlayer.experienceObjects)).modules.videoPlayer;
player.addEventListener(BCMediaEvent.PLAY, onPlayEventFired);
player.addEventListener(BCMediaEvent.STOP, onStopEventFired);
function onPlayEventFired() {
alert("play");
}
function onStopEventFired() {
alert("stop");
}
brightcove_video.js:http://pastebin.com/fTL5Uhqc
這實際上運行在我的桌面上完美的每個瀏覽器。但只要我在蘋果設備上測試它,它不起作用,因爲Flash對象不再加載,而是一個iFrame。
這實際上是正確的答案,但我發現我無法使用Smart Player API,因爲我們的廣告公司無法爲此生成廣告。 – Schwierig
聽起來不尋常。通常,Brightcove視頻廣告合作伙伴通過在播放器中運行插件/翻譯器來工作。即使他們在swf插件中使用Flash-only API,也不排除您也可以在頁面上的js中使用智能播放器API。 – misterben
廣告可以正常工作,但由於某些原因,他們不希望我們在Smart Player API中實施廣告。我不知道這背後是否有一些跟蹤原因,或者他們不確定Smart Player API的工作原理。 – Schwierig