Воспроизведение двух звуковых дорожек одновременно [только звук]
Я пытаюсь воспроизвести две звуковые дорожки одновременно, первая работает как BGM, а другая работает как SFX.
Теперь произошло то, что BGM играет, и когда начинает воспроизводиться звук SFX, BGM останавливается, а затем запускается с самого начала.
Я хочу, чтобы оба звука воспроизводились без остановки, я просмотрел документацию и не нашел четкого ответа на этот вопрос.
2 ответа
Вы можете использовать asset_audio_player для открытия нескольких экземпляров аудио.
///play 3 songs in parallel
AssetsAudioPlayer.newPlayer().open(
Audio.asset("assets/audios/song1.mp3")
);
AssetsAudioPlayer.newPlayer().open(
Audio.asset("assets/audios/song2.mp3")
);
//another way, with create, open, play & dispose the player on finish
AssetsAudioPlayer.playAndForget(
Audio.asset("assets/audios/song3.mp3")
);
Вы можете прочитать документацию для получения дополнительной информации.
Вы можете обратиться к этому вопросу, чтобы получить более исчерпывающий ответ, но вы можете просто создать двух проигрывателей: один для воспроизведения фоновой музыки, а другой для воспроизведения звуковых эффектов:
final bgmPlayer = AudioPlayer();
final sfxPlayer = AudioPlayer();
await bgmPlayer.setAsset('music.mp3');
await sfxPlayer.setAsset('effect.mp3');
bgmPlayer.play(); // start playing background music
// now you can play the sound effect any time you want
// while the BGM continues to play:
await sfxPlayer.play();
await sfxPlayer.play();
await sfxPlayer.play();