На самом деле, это может показаться странным, потому что у меня сложилось впечатление, что существует вероятность того, что currentTime все еще может вернуть 0, если мы сделаем это за доли секунды. Но после прочтения комментариев @reedn-m, @ roko- c -buljan, @ rory-mccrossan я понял, что никогда не будет возможным, чтобы currentTime вернул 0, когда мы немедленно воспроизведем-остановим-воспроизведем видео.
Теперь, скажем, я хочу отслеживать, сколько раз пользователь смотрел видео. Требования могут показаться странными, но под наблюдением я имел в виду только запуск / воспроизведение. Это не считается, если пользователь вручную перетаскивает панель поиска в начало источника.
Вот как я реализовал это, наконец, используя все ваши точки:
const $audio = $('.audio');
$audio.on("play", function() {
if ($(this).data('once-played')) return; // Do nothing if data exists.
// Your code here
console.log("Audio started/replayed");
// Finally, add a flag.
$(this).data('once-played', true);
});
$audio.on("ended", function() {
$(this).data('once-played', false);
});