首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript中的Youtube视频api

JavaScript中的Youtube视频api
EN

Stack Overflow用户
提问于 2014-10-02 06:14:46
回答 1查看 2.1K关注 0票数 1

我在YouTube中使用了JavaScript视频API。

播放暂停和停止我用过的事件

现在我得到了总观看时间,但我的主要问题是:

看一段视频几秒钟,然后快速前进,然后再看几秒钟,看看它记录的时间.如果我看一个视频5秒,然后快进到10分钟,然后再看5秒,我实际看视频的时间是10秒,而不是10分钟。

这是我的代码:

代码语言:javascript
复制
function onytplayerStateChange(event) 
{ 
    //alert("Status=>"+event.data); 
    if(event. data == 1) { 
        if(Math.floor(event.target.A.currentTime) == 0) { 
            previous_track_time = current_track_time = 0; 
            total_track_time = event.target.A.duration; 
        } else { 
            previous_track_time = current_track_time; 
            current_track_time = event.target.A.currentTime; 
        } 
    } 
    if(event.data == 2) 
    { 
        current_track_time = event.target.A.currentTime; 
        total_track_time =(event.target.A.duration-(current_track_time-previous_track_time)); 
        previous_track_time = current_track_time; 
    }
} 

你能修一下吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-02 09:29:42

如果您希望用户只在视频上观看时间,则需要使用计数器。我也简化了你的代码。

函数onPlayerStateChange

代码语言:javascript
复制
function onPlayerStateChange(event) {
    if (event.data == YT.PlayerState.PLAYING) {
        //player play
        timer = setInterval(
          function() {
            seconds++;
            console.log("you watch: "+ seconds +" seconds of the video");
          }, 1000
        );
    } else {
      //player pause
      clearInterval(timer);
    }
}

输出:我只看到了8秒的视频,4秒的头一秒钟和4秒的2:03。

有一个实例化 (更新的)

完整的代码:

代码语言:javascript
复制
var tag = document.createElement('script');

tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

// 3. This function creates an <iframe> (and YouTube player)
//    after the API code downloads.
var player;

function onYouTubeIframeAPIReady() {
    player = new YT.Player('player', {
        height: '390',
        width: '640',
        videoId: 'l-gQLqv9f4o',
        events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
        }
    });
}

// 4. The API will call this function when the video player is ready.
var seconds = 0;
var timer;
function onPlayerReady(event) {
    event.target.playVideo();

}

function onPlayerStateChange(event) {
    if (event.data == YT.PlayerState.PLAYING) {
        //player play
        timer = setInterval(
          function() {
            seconds++;
            console.log("you watch: "+ seconds +" seconds of the video");
          }, 1000
        );
    } else {
      //player pause
      clearInterval(timer);
    }
}

function stopVideo() {
    player.stopVideo();
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26155330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档