jquery视频html5多视频跟踪
我试图从包含多个视频的页面获取当前视频源,这些视频由id分隔 示例如下jquery视频html5多视频跟踪,jquery,html,html5-video,Jquery,Html,Html5 Video,我试图从包含多个视频的页面获取当前视频源,这些视频由id分隔 示例如下 <video id="videoOne" controls src="videoOne.mp4" </video> <video id="videoTwo" controls src="videoTwo.mp4" </video> 我可能有点不对劲,如果有,请告诉我,我会删除我的答案。 但以下是我要尝试的: 在外部绑定事件中,获取对视频对象的引用 使用它来查找您当前的\u src 继续
<video id="videoOne"
controls src="videoOne.mp4"
</video>
<video id="videoTwo"
controls src="videoTwo.mp4"
</video>
我可能有点不对劲,如果有,请告诉我,我会删除我的答案。
但以下是我要尝试的:
var PodcastAnalytics = PodcastAnalytics || {};
// Wait for the video element to be parsed before attempting this.
$(document).ready(function(){
// Wait until the video metadata has been loaded before we try to determine the current video source.
$('video').on('loadedmetadata', function(){
// should 'this' refer to the video object?
var $video = $(this);
// Simple function to chop off the file extension for the current source of the video.
PodcastAnalytics.audio_url = (function(){
var current_source = $video.attr('currentSrc');
// var current_source = $('video')[0].currentSrc;
return current_source.slice(0, -4);
}());
// function that sends the actual tracking beacon
PodcastAnalytics.gaq_track = function(action) {
// All events will be in the Video category
var tracking_params = ['podcast','audio']
// append the event action after the event method and the event category
tracking_params.push(action);
// append the video url as the event label
tracking_params.push(PodcastAnalytics.audio_url);
// Replace this console.log with something like this if you are using Google Analytics:
// _gaq.push(tracking_params);
console.log(tracking_params);
}
$video.on('play', function(){
PodcastAnalytics.gaq_track('Play');
});
$video.on('pause', function(){
PodcastAnalytics.gaq_track('Pause');
});
$video.on('seeked', function(){
PodcastAnalytics.gaq_track('Seeked');
});
$video.on('ended', function(){
PodcastAnalytics.gaq_track('Ended');
});
});
});
我使用下面的jquery获得了正确的
,但仍然想知道这是否可能,以及如何从e.target.id获得currentSrc
$(document).ready(function($){
$('video').on('loadedmetadata', function() {
tracking = function(action,id, source) {
var items = ['podcast','audio',action,id, source];
console.log(items);
};
});
$('video').off('play').on('play', function(e) {
var idx = $(this).index();
var currentSource = $('video')[idx].currentSrc;
tracking('Play', e.target.id, currentSource);
});
$('video').off('pause').on('pause', function(e) {
tracking('Pause', e.target.id);
});
$('video').off('seeked').on('seeked', function(e) {
tracking('Seeked', e.target.id);
});
$('video').off('ended').on('ended', function(e) {
tracking('Ended', e.target.id);
});
});
谢谢你的建议,我确实更新了我原来的帖子,新的jquery现在正在跟踪正确的答案,你应该保持原来的原样,并提交你的更正代码作为一个单独的答案,然后接受它作为正确的答案。这为其他人留下了一条很好的道路。
$(document).ready(function($){
$('video').on('loadedmetadata', function() {
tracking = function(action,id, source) {
var items = ['podcast','audio',action,id, source];
console.log(items);
};
});
$('video').off('play').on('play', function(e) {
var idx = $(this).index();
var currentSource = $('video')[idx].currentSrc;
tracking('Play', e.target.id, currentSource);
});
$('video').off('pause').on('pause', function(e) {
tracking('Pause', e.target.id);
});
$('video').off('seeked').on('seeked', function(e) {
tracking('Seeked', e.target.id);
});
$('video').off('ended').on('ended', function(e) {
tracking('Ended', e.target.id);
});
});