0

如何为通知图标提供可选功能?

除了图标的正常功能之外,我想给图标赋予其他可选功能,例如,在下一次点击之后,执行另一个功能并..

其实我想听听主要动作的变化(下一个,上一个,暂停..)

4

1 回答 1

1

如果您查看官方的 audio_service 示例,特别是example/lib/example_multiple_handlers.dart,您会发现它定义了skipToQueueItem执行“正常功能”的方法,例如寻找所请求的项目:

  @override
  Future<void> skipToQueueItem(int index) async {
    // Then default implementations of skipToNext and skipToPrevious provided by
    // the [QueueHandler] mixin will delegate to this method.
    if (index < 0 || index >= queue.value.length) return;
    // This jumps to the beginning of the queue item at newIndex.
    _player.seek(Duration.zero, index: index);
    // Demonstrate custom events.
    customEvent.add('skip to $index');
  }

如果您想做自定义的事情,只需在此方法的末尾添加您的自定义代码。请注意,在示例中,回调skipToNextskipToPrevious仅委托给上述方法,以便在上面的这一位置处理跳到轨道。

其实我想听听主要动作的变化(下一个,上一个,暂停..)

方法完全相同。只需覆盖这些回调中的每一个并处理每个回调以首先执行“正常功能”,然后是您的自定义代码。

例如,您可以skipToNext像这样覆盖:

@override
Future<void> skipToNext() async {
  // Do the normal functions
  await _player.seekToNext();
  // Add your custom code here
}

每个回调的方法都是相同的,因此您需要做的就是查看文档以查看所有可用回调的列表(例如pause),然后覆盖您需要的每个回调并使用上述方法实现它。首先,执行正常功能,然后执行您的自定义代码。

于 2021-09-12T16:49:49.650 回答