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

256
Visualizações
Expo Audio no deja de reproducirse en bucle

Estoy usando Expo-AV para reproducir un sonido cuando cargo la pantalla usando componentDidMount , dado que el audio no es muy largo, quiero reproducirlo en bucle hasta que el usuario presione un botón para detenerlo, el audio comienza correctamente pero cuando comienza para repetir el audio ya no se detiene.

(Tengo otra función en fetchNewOrder que necesito seguir ejecutando, por eso no quiero detener el intervalo)

Esta es la documentación que estoy siguiendo: https://docs.expo.dev/versions/v44.0.0/sdk/av/

 export class App extends Component { constructor(props) { super(props); this.state = { sound: null, }; } async componentDidMount() { this.updateTimer = setInterval(() => { this.fetchNewOrders(); }, 10000); } fetchNewOrders = async () => { const { sound } = await Audio.Sound.createAsync(require('../../../assets/ringtone2.mp3')); this.setState({sound: sound}); this.playSound() } playSound = async () => { await this.state.sound.playAsync() await this.state.sound.setIsLoopingAsync(true) }; stopSound = async () => { await this.state.sound.stopAsync() await this.state.sound.unloadAsync() } render() { return( <View> <Button onPress={this.stopSound} /> </View> ) } }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Para detener el bucle setInterval , debe llamar a clearInterval(idOfSetInterval) . setInterval devuelve una identificación.

 this.updateTimer = setInterval(() => { this.fetchNewOrders(); }, 10000); console.log(this.updateTimer)

updateTimer es una identificación y una llamada en stopSound clearInterval .

 stopSound = async () => { clearInterval(this.updateTimer) }
about 4 years ago · Juan Pablo Isaza Relatório
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