Flutter:安排音频事件进行后台执行

时间:2019-04-07 10:39:08

标签: audio mobile dart flutter background-process

我正在Flutter中实现一个应用程序,为此我需要提前安排(音频)事件。由于一个事件的持续时间以前可能未知,因此只有在一个事件完成后我才能安排下一个事件。每个音频事件都是用户的通知声音,因此在应用程序没有焦点或手机被锁定的情况下,计划和音频回放都应该起作用。

我目前无法实现这些规范,我想我暂时还没有考虑正确的方法。自从我最近开始学习Flutter以来,就我而言可能还存在一些简单的误解。让我总结一下我对Flutter中的后台执行和本机代码的了解,请更正这些语句中的所有错误:

  • 当应用失去焦点(或手机被锁定)时,代码执行停止。
  • 但是,在“主要” Dart代码中,我可以生成一个隔离对象,即使在手机锁定或不关注应用程序的情况下,隔离对象也可以运行。
  • 不同的隔离区不共享任何内存;它们通过端口进行通信。
  • 产卵隔离区对flutter生态系统一无所知,因此无法使用flutter插件。
  • 出于相同的原因,我也无法使用MethodChannels与隔离中的平台代码进行通信。

由此我得出结论:

  • 该事件应从单独的Dart-isolate安排,以便锁定手机不会停止安排。
  • 此隔离程序将无法单独播放任何音频文件,也无法与平台代码进行通信。
  • 因此,它需要与可以播放音频的主要隔离区进行通信。但是,如果没有打开应用程序,则代码将不会响应。
  • 因此,这种方法行不通吗?

现在,我被困在这一点上,不知道如何继续。我猜一个选择可能是直接为各自的本机平台调用java / swift代码并在那里处理调度和音频。但是,我希望我现在没有看到一个更简单的选择。

0 个答案:

没有答案