Как правильно использовать аудиоплеер в Flutter

#flutter #dart

Вопрос:

Я пытаюсь воспроизвести/приостановить звук в своем приложении flutter. Я вызываю функцию аудиоплеера на вкладке в нижней панели навигации. Кроме того, я хотел бы воспроизводить/приостанавливать звук на разных страницах моего приложения. Звук воспроизводится, когда я нажимаю кнопку на панели навигации, но когда я перехожу на другую страницу своего приложения, звук перекрывается.

Вот код класса аудиоплеера:

 class AudioPlayerWithLocalAsset extends StatefulWidget {  const AudioPlayerWithLocalAsset({ Key? key }) : super(key: key);   @override  _AudioPlayerWithLocalAssetState createState() =gt; _AudioPlayerWithLocalAssetState();  }  class _AudioPlayerWithLocalAssetState extends Statelt;AudioPlayerWithLocalAssetgt; {    AudioPlayer audioPlayer = AudioPlayer();  PlayerState audioPlayerState = PlayerState.PAUSED;  static AudioCache audioCache = AudioCache();  String path = 'sample.mp3';   int first = 1;   @override  void initState(){  super.initState();  audioCache = AudioCache(fixedPlayer: audioPlayer);  audioPlayer.onPlayerStateChanged.listen((PlayerState s){  setState(() {  audioPlayerState = s;  });  });  }   @override  void dispose() {  super.dispose();  audioPlayer.release();  audioPlayer.dispose();  audioCache.clearAll();  }   playMusic() async {  await audioCache.loop(path);  }   pauseMusic() async {  await audioPlayer.pause();  }   resumeMusic() async {  await audioPlayer.resume();  }   @override  Widget build(BuildContext context) {  return Tab(  icon: IconButton(  iconSize: 4.h,  onPressed: () {  audioPlayerState == PlayerState.PLAYING   ? pauseMusic()  : playMusic();   },  icon: Icon(audioPlayerState == PlayerState.PLAYING   ? Icons.music_note   : Icons.music_off,  ),  ),   );  } }  

и я называю это в другом классе виджетов dart

 tabs: lt;Widgetgt;[  Tab(  icon: Icon(Icons.info_outline, size: 4.h,),  ),  **AudioPlayerWithLocalAsset(),**  Tab(  icon: Icon(Icons.exit_to_app_outlined, size: 4.h),  ),  ],