【发布时间】:2020-12-29 13:56:34
【问题描述】:
我在我的 Flutter 应用程序中使用 audio_service 包。
在所有示例中,MediaItems 要么出现在从 BackgroundAudioTask 扩展的类中,要么从另一个类传递,但它们最后是硬编码的..
在我的项目中,我只有一个MediaItem(无论播放的声音如何),我想在那个MediaItem 中使用本地化字符串。
问题是BackgroundAudioTask 不会给您BuildContext,因此您无法从BackgroundAudioTask 获取本地化字符串。
到目前为止,我尝试在 BackgroundAudioTask 中覆盖 onUpdateMediaItem,如下所示:
@override
onUpdateMediaItem(MediaItem mediaItem) async {
AudioServiceBackground.setMediaItem(mediaItem);
}
并将 MediaItem 设置在 BackgroundAudioTask 之外,如下所示:
final mediaItem = MediaItem(
id: "my-fixed-id",
album: AppLocalizations.of(context).translate('media_item_album'),
title: AppLocalizations.of(context).translate('media_item_title'),
);
AudioService.updateMediaItem(mediaItem);
问题是我不知道将第二个代码块放在哪里。我不能把它放在我的 App 类中,因为本地化还没有在那里初始化,我不确定把它放在页面屏幕中是否有意义,因为这个 MediaItems 是用于服务的,不应该假设绑定在屏幕上。
您能帮我为MediaItems 使用本地化字符串吗?
提前致谢!
【问题讨论】: