dart 在just_audio_background中禁用音乐播放

olhwl3o2  于 2023-05-04  发布在  其他
关注(0)|答案(1)|浏览(130)

我正在构建一个flutter音乐应用程序,并使用just_audio和just_audio_background包。我希望音乐只能在前台状态下播放,而不是在终止状态下。我如何才能做到这一点?目前,音乐在这两个国家播放。

final audio = AudioSource.uri(
        Uri.parse(audioModel.url),
        tag: MediaItem(
          id: audioModel.id.toString(),
          album: audioModel.album,
          title: audioModel.title,
          artUri: Uri.parse(
            audioModel.image.toString(),
          ),
        ),
      );
      _audioPlayer.setAudioSource(audio);
      _audioPlayer.play();
pn9klfpd

pn9klfpd1#

官方的just_audio示例演示了如何做到这一点。即从just_audio页面,单击“example”,然后注意到以下方法在小部件中被覆盖:

@override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    if (state == AppLifecycleState.paused) {
      // Release the player's resources when not in use. We use "stop" so that
      // if the app resumes later, it will still remember what position to
      // resume from.
      _player.stop();
    }
  }

注意,你不能直接从你的widget超类覆盖这个方法,你需要做的是在你的widget中使用WidgetsBindingObserver mixin。示例中的关键代码行如下:

class MyAppState extends State<MyApp> with WidgetsBindingObserver {

这将添加didChangeAppLifecycleState方法,然后可以覆盖该方法。

相关问题