es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Audio no se está reproduciendo en bucle en segundo plano.

Mi implementación hace un bucle en primer plano. También funciona en segundo plano. El problema es que NO hace un bucle en segundo plano. El problema ocurre solo en un dispositivo físico iOS (no en el simulador, ni en Android).

Estoy utilizando el complemento https://pub.dev/packages/audioplayers ya que https://pub.dev/packages/just_audio me causaba muchos problemas, especialmente con la caché de audio mal realizada, lo que siempre ocasionaba un retraso en el audio al comienzo de una pista, lo cual no era aceptable en mi caso.

Este es mi archivo audio_player_handler.dart:

import 'package:ambee2/models/animations/light_animation.dart';
import 'package:audio_service/audio_service.dart';
import 'package:flutter/material.dart';
// import 'package:just_audio/just_audio.dart';
import 'package:audioplayers/audioplayers.dart';

class AudioPlayerHandler extends BaseAudioHandler {
  final _player = AudioPlayer();

  AudioPlayerHandler() {
    // Configurar el audio para que se repita una vez que haya terminado
    _player.setReleaseMode(ReleaseMode.LOOP);
  }

  Future<void> setUrl(String url) async => await _player.setUrl(url);

  Future<void> playUrl(String url, double volumeValue) =>
      _player.play(url, volume: volumeValue);

  Future<void> resume() => _player.resume();

  @override
  Future<void> pause() => _player.pause();

  @override
  Future<void> stop() => _player.stop();

  Future<void> setVolume(double newValue) => _player.setVolume(newValue);
}

También tengo objetos llamados LightAnimation que tienen una propiedad audioHandler definida de esta manera:

class LightAnimation {
  AudioPlayerHandler audioHandler = AudioPlayerHandler();

  LightAnimation({
    this.audioUrl,
  });
}

Luego, solo accedo desde una parte diferente de mi código de la siguiente manera:

await lightAnimation.audioHandler.playUrl(lightAnimation.audioUrl, volumeSetValue);

¿Mi implementación es incorrecta o es solo un error en el paquete (https://pub.dev/packages/audioplayers)?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    La implementación parece correcta. El problema podría estar en el paquete de reproductor de audio (audioplayers), ya que el problema solo ocurre en dispositivos físicos iOS y no en el simulador o en Android. Podrías revisar el repositorio de Github del paquete o reportar un problema en su página de Github para llamar su atención sobre el problema. También podrías intentar usar un paquete de reproductor de audio diferente, como just_audio, para ver si eso resuelve el problema.

Comments are closed.