2013-06-28 105 views
0

我在使用Omniture手動跟蹤視頻時遇到問題。我已經包括了s.loadModule("Media");和以下配置:JS Omniture視頻跟蹤/ Brightcove

/*Configure Media Module Functions */ 
s.Media.autoTrack= false; 
s.Media.trackMilestones="50"; 
s.Media.playerName="brightcove"; 
s.Media.segmentByMilestones = true; 
s.Media.trackUsingContextData = true; 
s.Media.trackVars="events,prop9,eVar9,prop11,eVar11,prop12,eVar12,prop13,eVar13, prop14, eVar14, prop32, eVar34"; 
s.Media.trackEvents="event8,event11,event12"; 
s.Media.contextDataMapping = { 
    "a.media.name":"eVar2,prop2", 
    "a.media.segment":"eVar3", 
    "a.contentType":"eVar1", 
    "a.media.timePlayed":"event3", 
    "a.media.view":"event11", 
    "a.media.segmentView":"event8", 
    "a.media.complete":"event12", 
    "a.media.milestones":{ 
     50:"event8" 
    } 
} 

我使用Brightcove的SmartPlayer API,以斷火Omniture的要求onMediaBegin,onMediaComplete和手動爲50%回放里程碑onMediaProgress檢查。

onMediaBeginFired : function(evt) { 
    s.Media.open('my_vid',320,'brightcove'); 
    s.Media.play('my_vid',0); 
} 

我得到後續JS錯誤:

Uncaught TypeError: Object #<Object> has no method 'open' 

我可以看到在控制檯s.Media對象,但我不知道爲什麼s.Media對象不具有任何的我需要的方法,'打開','播放','關閉'?

我仍然可以進行s.t()或s.tl()調用,所以我知道它與媒體模塊有關,或者我在配置過程中丟失了某些東西。

注意:我們不再需要使用Brightcove Flash插件,因爲它不會在移動設備上進行報告。

回答

0

問題是需要解決的競爭條件。

+0

我不知道你可以回答你自己的問題,並將其作爲有效答案。謝謝你的提示! –

+1

您可以詳細說明競賽狀況是什麼?我們有類似的問題。 – Christian

+1

@Christian我不再在那個項目上工作,但我認爲它與requirejs以及什麼時候「準備好」有關。如果我沒有記錯的話,我在播放器被渲染的頁面上有一些代碼,而另一些代碼則在另一個requirejs模塊中。這就是我所能記得的一切,對不起。 – pjdicke

0

也許很多更容易整合以下內容:

http://video.marijka.com/brightcove-smart-module/

我沒有找到它,直到今天和你原來的職位發佈後,但我想它會幫助其他用戶得到他們的答覆。

+0

感謝您提交答案。我忘了關閉這個問題,但我認爲我正在處理我的代碼中的競爭條件。 – pjdicke