正在跟踪来自flutter中的音频服务的事件



如果我们触发倒带和快进并跳过下一步并跳到上一步,有什么方法可以跟踪吗?

您可以制作一个环绕主音频处理程序的音频处理程序。主音频处理程序被传递到AudioService.init中,但只要您想手动触发像fastForward这样的方法,包装器音频处理程序就会在其他任何地方使用。你可以创建这样的包装:

class FrontendAudioHandler extends CompositeAudioHandler {
FrontendAudioHandler(AudioHandler inner) : super(inner);
@override
Future<void> fastForward() async {
// insert any code here that should only happen when the app
// manually invokes fastForward.

await super.fastForward();
}
// Override any other methods you need to intercept.
}

现在,在你的应用程序启动时,你设置了两个音频处理程序,一个包裹另一个:

final mainAudioHandler = AudioService.init(builder: () => MainAudioHandler());
final frontendAudioHandler = FrontendAudioHandler(mainAudioHandler);

当用户在通知中单击快进时,它将直接转到mainAudioHandler。但是,当你想从Flutter代码中手动触发快进时,只需确保通过frontendAudioHandler,如下所示:

await frontendAudioHandler.fastForward();

这将首先调用上面的fastForward实现,让您有机会处理手动触发器,但随后将调用super.fastForward(),它基本上会将请求转发到您的主音频处理程序。

最新更新