Flutter 有没有一种方法可以循环一个声音池音轨颤振包?

Flutter 有没有一种方法可以循环一个声音池音轨颤振包?,flutter,flutter-dependencies,Flutter,Flutter Dependencies,我正在使用flatter创建一个音乐应用程序,我正在使用soundpool包。我想知道除了这个,是否还有其他方法可以循环播放原声带: while (true) { soundStreamId = await pool.play(soundId); print("Loopin"); if (status == false) { break; } } 通过使用“中断”,声音不会立即停止,但会在曲目完全播放后停止 我尝试用pool.stop(soundSt

我正在使用flatter创建一个音乐应用程序,我正在使用soundpool包。我想知道除了这个,是否还有其他方法可以循环播放原声带:

while (true) {
  soundStreamId = await pool.play(soundId);
  print("Loopin");
  if (status == false) {
    break;
  }
}
通过使用“中断”,声音不会立即停止,但会在曲目完全播放后停止

我尝试用pool.stop(soundStreamId)和pool.pause(soundStreamId)替换break,但出现以下错误:

[VERBOSE-2:ui_dart_state.cc(177)] Unhandled Exception: 'package:soundpool/soundpool.dart': Failed assertion: line 189 pos 12: 'streamId > 0': Invalid 'streamId' parameter. Only values greater than 0 are valid.
#0      _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:46:39)
#1      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
#2      Soundpool.stop (package:soundpool/soundpool.dart:189:12)
#3      SoundServices.toggleSound (package:Waver/api/sound_service.dart:33:20)
<asynchronous suspension>
#4      _AutoSoundSetterState._toggleSpectrumAnalyzer (package:Waver/Widgets/Setup/AutoSoundSetter.dart:51:20)
#5      _AutoSoundSetterState.build.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:Waver/Widgets/Setup/AutoSoundSetter.dart:211:31)
#6      State.setState (package:flutter/src/widgets/framework.dart:1244:30)
#7      _AutoSoundSetterState.build.<anonymous closure>.<anonymous closure> (package:Waver/Widgets/Setup/AutoSoundSetter.dart:203:27)
[VERBOSE-2:ui\u dart\u state.cc(177)]未处理的异常:“package:soundpool/soundpool.dart”:失败的断言:第189行位置12:“streamId>0”:无效的“streamId”参数。只有大于0的值才有效。
#0\u断言错误。\u doThrowNew(dart:核心修补程序/错误\u修补程序。dart:46:39)
#1 _断言错误。_throwNew(dart:核心补丁/错误补丁。dart:36:5)
#2 Soundpool.stop(包:Soundpool/Soundpool.dart:189:12)
#3 SoundServices.toggleSound(软件包:Waver/api/sound_service.dart:33:20)
#4 AutoSoundSetterState.toggleSpectrumAnalyzer(包:Waver/Widgets/Setup/AutoSoundSetter.dart:51:20)
#5_AutoSoundSetterState.build。。。(软件包:Waver/Widgets/Setup/AutoSoundSetter.dart:211:31)
#6 State.setState(包:flatter/src/widgets/framework.dart:1244:30)
#7_AutoSoundSetterState.build。。(软件包:Waver/Widgets/Setup/AutoSoundSetter.dart:203:27)

请告知。谢谢

是的,我需要一个类似的东西,找到了这个包裹:

它具有循环:

循环和洗牌:

await player.setLoopMode(LoopMode.off); // no looping (default)
await player.setLoopMode(LoopMode.all); // loop playlist
await player.setLoopMode(LoopMode.one); // loop current item
await player.setShuffleModeEnabled(true); // shuffle playlist
播放列表的偶数循环:

player.setAudioSource(
  // Loop child 4 times
  LoopingAudioSource(
    count: 4,
    // Play children one after the other
    child: ConcatenatingAudioSource(
      children: [
        // Play a regular media file
        ProgressiveAudioSource(Uri.parse("https://example.com/foo.mp3")),
        // Play a DASH stream
        DashAudioSource(Uri.parse("https://example.com/audio.mdp")),
        // Play an HLS stream
        HlsAudioSource(Uri.parse("https://example.com/audio.m3u8")),
        // Play a segment of the child
        ClippingAudioSource(
          child: ProgressiveAudioSource(Uri.parse("https://w.xyz/p.mp3")),
          start: Duration(seconds: 25),
          end: Duration(seconds: 30),
        ),
      ],
    ),
  ),
);