Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

114
Visualizações
El evento de finalización de audio en iOS no se activa al transmitir audio desde NodeJS

Estoy usando @google-cloud/text-to-speech para transmitir audio.

Aquí está el código en el backend:

 import { TextToSpeechClient } from '@google-cloud/text-to-speech'; const t2s = new TextToSpeechClient(); app.use('/api/v1/text2speech', async (req, res) => { const text = req.query['text']; const t2s = new TextToSpeechClient(); const request = { input: { text }, audioConfig: { audioEncoding: 2 } }; const [response] = await t2s.synthesizeSpeech(request); res.setHeader('Content-Type', 'audio/mpeg'); res.write(response.audioContent); return res.end(); });

En el navegador:

 <audio src="/api/v1/text2speech?text=Audio to be played"></audio>

Intente hacer algo en el evento de finalización de audio:

 const audio = document.querySelector('audio'); audio.addEventListener('ended', () => { // Nothing happens here on iOS/iPad OS window.alert('Audio has ended'); });

Resultado: Funciona en todos los dispositivos excepto iOS/iPad OS

Notas:

  1. El ended incluso se activa cuando el audio se reproduce desde un archivo estático. Pero necesito transmitir el audio y no reproducirlo desde un archivo.
  2. También probé soluciones alternativas para verificar el estado de audio.paused pero la propiedad audio.paused sigue siendo falsa para siempre, aunque la transmisión se haya completado.
  3. Como se trata de una transmisión, no sé la duración del audio. Entonces no puedo verificar el valor basado en currentTime .
about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda