【发布时间】:2020-05-08 11:24:22
【问题描述】:
我想用flutter做一个音乐播放器。我想,当用户播放音乐并关闭应用程序时,音乐作为服务在后台播放。
我用谷歌搜索发现,使用这些颤振库是不可能的(意味着音乐播放器作为后台服务工作)? 是真的吗?
或者有什么办法吗?
【问题讨论】:
我想用flutter做一个音乐播放器。我想,当用户播放音乐并关闭应用程序时,音乐作为服务在后台播放。
我用谷歌搜索发现,使用这些颤振库是不可能的(意味着音乐播放器作为后台服务工作)? 是真的吗?
或者有什么办法吗?
【问题讨论】:
要在应用处于后台时停止音乐,您需要将Audio Player 绑定到WidgetsBindingObserver 以监听应用生命周期状态的变化。
例如创建一个自定义class
class _Handler extends WidgetsBindingObserver {
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
if (state == AppLifecycleState.resumed) {
AudioPlayer.resume(); // Audio player is a custom class with resume and pause static methods
} else {
AudioPlayer.pause();
}
}
}
然后在你的 main.dart 中你可以像下面这样使用它:
main() async {
WidgetsFlutterBinding.ensureInitialized();
runApp(YourApp());
WidgetsBinding.instance.addObserver(new _Handler());
}
【讨论】:
也许audio_service 会满足您的需求。从它的描述来看,它实际上应该正是您要搜索的内容。
此插件封装了您现有的音频代码以使其在后台运行,并提供回调以允许您的应用响应耳机上的媒体按钮、Android 锁定屏幕和通知、iOS 控制中心、可穿戴设备和安卓汽车。
【讨论】: