Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.

Tentar fazer um player de áudio simples em JavaScript parece fácil na teoria, mas na prática dá um trabalhão pra quem tá começando. A maior dor é entender por que a variável do som fica 'undefined' e como garantir que o arquivo carregue e toque de verdade.
Já passei por isso na hora de fazer testes rápidos. Acho que a chave é validar o caminho do arquivo e usar o evento de 'loaded' pra cuidar para que o som tá pronto antes de tocar.
No meu time, a gente sempre valida o carregamento do arquivo antes de tentar tocar. Além disso, usar promises ajuda a evitar esses erros de timing.
Concordo, e na minha experiência, separar a carga do áudio em uma função de inicialização ajuda a evitar esses bugs de última hora na hora do deploy.
Verdade, o que me ajudou foi colocar logs no carregamento pra ver se o arquivo realmente existe e se o objeto de som foi instanciado. Sem isso, fica difícil de localizar o problema.