是否可以在 Flutter 中完全处理由音量增大/减小生成的事件?

hic*_*nar 5 android volume button ios flutter

Flutter中是否可以完全拦截硬件按钮产生的事件?例如,如果应用程序处于活动状态并且按下音量增大/减小按钮,是否可以在应用程序中拦截该事件,以应用程序特定方式处理它,最重要的是防止系统对其进行进一步操作,以便实际上将音量调高/调低并显示系统对话框/弹出窗口的默认行为不会发生音量调高/降低?

我尝试使用 hardware_buttons 颤动库/插件。它允许我在按下按钮时做出反应,但事件仍会继续传播,因此系统也会以常规方式处理它们。

预先感谢您的建议!

Den*_*din 0

volume_watcher为我工作。您可以:

  • 使用小部件监听音量事件:
import 'package:volume_watcher/volume_watcher.dart';

VolumeWatcher(
  onVolumeChangeListener: (double volume) {
    // do stuff
  },
)
Run Code Online (Sandbox Code Playgroud)
  • 或者直接监听事件:
import 'package:volume_watcher/volume_watcher.dart';

int _volumeListenerId;

@override
void initState() {
  super.initState();
  _volumeListenerId = VolumeWatcher.addListener((volume) {
    // do stuff
  });
}

@override
void dispose() {
  VolumeWatcher.removeListener(_volumeListenerId);
  super.dispose();
}
Run Code Online (Sandbox Code Playgroud)