需要进行哪些 javascript 修改才能确保视频播放器的播放次数在按下暂停然后播放后不会增加?

What javascript modification is needed to ensure the play count of a video player won't increase after pressing pause, then play?

提问人:Chauncey Moore 提问时间:7/23/2023 最后编辑:RF1991Chauncey Moore 更新时间:7/24/2023 访问量:46

问:

我为视频播放器构建了一些 HTML 和 JavaScript 代码。它播放视频,但是当我按下暂停键,然后再次按下播放键时,播放次数会增加。我只希望在歌曲播放完毕后增加播放次数。以下是 java 脚本格式。如果需要HTML代码,我会提供它。我只是在满足职位要求方面遇到了麻烦。有人告诉我,我写了太多代码。不过,这是一个简单的视频播放器。

<script>
// JavaScript
const videoPlayer = document.querySelector('.video-player');
const videoElement = videoPlayer.querySelector('.video');
const playCountElement = videoPlayer.querySelector('.play-count');

let playCount = 0;

function updatePlayCount() {
    playCountElement.textContent = playCount + ' Plays';
}

function savePlayCount() {
    localStorage.setItem('playCount', playCount);
}

function loadPlayCount() {
    const storedPlayCount = localStorage.getItem('playCount');
    if (storedPlayCount !== null) {
        playCount = parseInt(storedPlayCount);
    }
}

function playVideo() {
    videoElement.play();
    playCount++;
    updatePlayCount();
    savePlayCount();
}

function pauseVideo() {
    videoElement.pause();
}

function togglePlayPause() {
    if (videoElement.paused) {
        playVideo();
    } else {
        pauseVideo();
    }
}

videoElement.addEventListener('ended', function () {
    videoElement.currentTime = 0; // Reset video to the beginning when it ends
    hasBeenPlayed = false; // Set hasBeenPlayed to false only when you want to reset play count after the video ends
    pauseVideo();
});

videoElement.addEventListener('play', function () {
    playCount++; // Increment play count when video starts playing
    updatePlayCount();
    savePlayCount();
});

videoPlayer.addEventListener('click', togglePlayPause);

// Load the initial play count when the page loads
window.addEventListener('load', function () {
    loadPlayCount();
    updatePlayCount();
});


</script>
JavaScript 视频 计数器 播放 暂停

评论


答:

0赞 VC.One 7/23/2023 #1

尝试使用一个变量来注意它是否是“第一次玩”,因为......

(1) 替换为以下内容:let playCount = 0;

let playCount;
let is_FirstPlay = true;

播放视频时,应仅在首次播放时更新。
例如:以后的暂停将跳过“IF”代码):
playCount

(2)将功能代码替换为此新版本:playVideo()

function playVideo() 
{
    if( is_FirstPlay == true )
    {
        playCount++;
        updatePlayCount();
        savePlayCount();
        is_FirstPlay = false;   
    }
    
    videoElement.play();
}

评论

0赞 Chauncey Moore 7/24/2023
感谢您的回复。我是否要替换我的 let playCounts = [];变量替换为 let playCount;让 is_First Play = true;变量?并对函数 playVideo 执行相同的操作?或者只是将它们添加到代码中?
0赞 VC.One 7/24/2023
是的,将这两个部分替换为所示的示例代码。
0赞 Chauncey Moore 7/24/2023
幸运的是,按下暂停然后再次播放后播放次数不会增加,但不幸的是,现在按下播放次数时播放次数根本不会增加。