【问题标题】:How can i stop music apps from playing when clicking a button in my flutter application单击我的颤振应用程序中的按钮时,如何停止播放音乐应用程序
【发布时间】:2021-03-17 15:05:16
【问题描述】:

我正在创建一个颤振应用程序,通过单击我的应用程序上的按钮来阻止任何音乐应用程序(如 youtube 音乐、gaana、spotify)播放。如何实施?是否有任何内置的软件包来实现这一点? 我尝试过使用名为 audio_service (https://pub.dev/packages/audio_service) 的包,但没有成功。

【问题讨论】:

标签: flutter dart flutter-dependencies


【解决方案1】:

这可以使用audio_session 包来实现:

final session = await AudioSession.instance;
await session.setActive(true);

在 iOS 上,这等同于激活 AVAudioSession,而在 Android 上,它等同于请求音频焦点。如果您想更具体地了解排他性/闪避行为,您可以根据自己的喜好配置音频会话(按照每个选项的每个平台文档):

final session = await AudioSession.instance;
await session.configure(AudioSessionConfiguration(
  avAudioSessionCategory: AVAudioSessionCategory.playAndRecord,
  avAudioSessionCategoryOptions: AVAudioSessionCategoryOptions.allowBluetooth,
  avAudioSessionMode: AVAudioSessionMode.spokenAudio,
  avAudioSessionRouteSharingPolicy: AVAudioSessionRouteSharingPolicy.defaultPolicy,
  avAudioSessionSetActiveOptions: AVAudioSessionSetActiveOptions.none,
  androidAudioAttributes: const AndroidAudioAttributes(
    contentType: AndroidAudioContentType.speech,
    flags: AndroidAudioFlags.none,
    usage: AndroidAudioUsage.voiceCommunication,
  ),
  androidAudioFocusGainType: AndroidAudioFocusGainType.gain,
  androidWillPauseWhenDucked: true,
));
await session.setActive(true);

请注意,just_audio 插件在后台使用 audio_session 来在播放音频时停止或避开其他音频应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多