Если плееров много будет, то вместо querySelector юзать нужно querySelectorAll.
Потом циклом по ним проходиться, подписывая события на каждый.
И в этом случае, стоит обозначать, какой контейнер(с атрибутом data-hint) соответствует какому аудио-плееру.
Проще всего, как в этом примере. Чтобы этот контейнер был родителем аудио-плееру.
Чтобы в цикле, например, этот аудио-плеер можно было легко найти, например так:
var myAudio = myAudioHoverBlock[i].querySelector('audio')