仅音频中的自定义操作通知图标

Posted

技术标签:

【中文标题】仅音频中的自定义操作通知图标【英文标题】:custom action notification icons in just audio 【发布时间】:2021-11-07 14:22:58 【问题描述】:

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

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

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

【问题讨论】:

【参考方案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),然后覆盖您需要的每个回调并使用实现它上述方法。首先,执行常规功能,然后执行您的自定义代码。

【讨论】:

谢谢你的回答,但其实我想听听主要动作的变化(下一个,上一个,暂停..) 你明白了,对吧?如果你用同样的方式覆盖skipToNextskipToPrevious,你可以直接监听那些方法。 我已将答案更新为skipToNext。这又是同样的方法。如果你想做另一个回调,例如pause,这又将是一个相同的方法,所以希望我的回答能给你一个大致的思路,你只需要为你想要在你的应用程序中处理的所有单独的回调实现相同的方法。 非常感谢您抽出宝贵时间,但此代码不适用于通知操作(下一个、上一个) 如果您将 skipToNext 方法添加到示例中,它会按预期工作。

以上是关于仅音频中的自定义操作通知图标的主要内容,如果未能解决你的问题,请参考以下文章

Urban Airship:默认状态栏通知的自定义图标

操作栏中的自定义主页图标 Sherlock

远程通知中的自定义声音 iOS 10,swift 3

如何用比率突出显示选定的自定义图标

Android推送通知的自定义声音不起作用(FCM)

UIDocumentMenuViewController 的自定义图像仅显示蓝色框