oncanplay - это свойство объекта, и его можно назначать несколько раз, но только последнее назначение ничего не значит, когда вы перезаписываете значение.
Это похоже на ...
a=2;
a=1;
console.log(a);
//as you'd expect, it would output the value of 1
Как уже было предложено, вы можете поместить несколько прослушивателей событий на объект, используя
vid.addEventListener("canplay",
function() {
console.log("CAN PLAY 1!");
});
..., потому что addEventListener не перезаписывает ранее созданные прослушиватели событий.
Кроме того, помните, что выполнение анонимной функции затруднит удаление прослушивателя событий позже; поскольку, будучи анонимным, нет именованной ссылки, которая позволяла бы вам обращаться к ней во время запроса removeEventListener.