我一直在构建一个 Flutter 应用程序,需要在后台触发警报。
我将
audio_service
与 just_audio
(两者的最新版本)结合使用,但只有当应用程序位于前台时触发警报时,我才会听到警报。
我的处理程序总是收到开始播放的回调,并且音频播放器不会抛出任何异常。
我已经尝试使用
IsolatedAudioHandler
类,如常见问题解答中所述,它的行为方式完全相同:只有在前台时才能听到声音。
当用户离开警戒区时,GPS 位置更新会触发警报。
如有任何建议,我们将不胜感激。
这是我的处理程序代码:
class AudioPlayerHandler extends BaseAudioHandler {
final _player = AudioPlayer();
AudioPlayerHandler() {
_player.setUrl("https://s3.amazonaws.com/scifri-episodes/scifri20181123-episode.mp3");
}
@override
Future<void> play() {
try {
print("****** play *******");
return _player.play();
} catch (e) {
print(e);
return Future.value(null);
}
}
@override
Future<void> pause() {
return _player.pause();
}
}```
将“音频”添加到 info.plist 文件中的背景模式
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
</array>