Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Stop audio loop (audioplayers package)

Tags:

flutter

dart

I'm new to flutter programming and I want to create an application, where I need an audio file to play/loop in the background. However it should stop, when double tapping on the screen.

The audio is saved in the assets folder. I am able to play it, but i don't know how to pause/stop it. I am using this package.

  @override
  Widget build(BuildContext context) {
    audioCache.play('rainsound.mp3', );
    return new Scaffold(
      child: new GestureDetector(
        onDoubleTap: () {
          //here I would like to stop the audio
          debugPrint('audio stopped');
        },
like image 958
Silent Tree Avatar asked May 29 '19 11:05

Silent Tree


1 Answers

You will have to get the instance of AudioPlayer to stop the file, simply use await on play() to get the instance and using this, you can call stop(). This is the working code.

AudioCache cache; // you have this
AudioPlayer player; // create this

void _playFile() async{
  player = await cache.play('my_audio.mp3'); // assign player here
}

void _stopFile() {
  player?.stop(); // stop the file like this
}
like image 133
CopsOnRoad Avatar answered Sep 27 '22 23:09

CopsOnRoad