ukasz123 / soundpool

Soundpool plugin for Flutter
88 stars 65 forks source link

stop() not working with loadAndPlayUri and loadAndPlayUint8List #119

Open dvagala opened 1 year ago

dvagala commented 1 year ago

Hello, thank you for this great package!

I found an issue. The soundpool.stop() is not always working when loading from file. It occurred on iOS, I didn't test Android.

Here's minimal reproducible code:

        int _streamId;

        _streamId = await _soundpool.loadAndPlayUri(file.uri.toString());
        // stop not working
        await _soundpool.stop(_streamId);

        _streamId = await _soundpool.loadAndPlayUint8List(file.readAsBytesSync());
        // stop not working
        await _soundpool.stop(_streamId);

        _streamId = await _soundpool.play(
          await _soundpool.load(
            file.readAsBytesSync().buffer.asByteData(),
          ),
        );
        // stop working
        await _soundpool.stop(_streamId);

Soundpool 2.3.0 Flutter 3.10.5 iOS 16.1

novas1r1 commented 5 months ago

@dvagala have you found a solution to that? I'm having the same issue with flutter 3.19.5, ios 17.4 and soundpool 2.4.1

dvagala commented 5 months ago

@novas1r1 It was quite a time ago, but I think I just used that last approach from the reproducible code above

   _streamId = await _soundpool.play(
          await _soundpool.load(
            file.readAsBytesSync().buffer.asByteData(),
          ),
        );
        // stop working
        await _soundpool.stop(_streamId);