我正在尝试呈现一个包含<audio>
标记的html
片段。
我已经导入了flutter_html
和flutter_html_audio
。我还有chewie_audio
和video_player
作为依赖项。
下面是我的代码:
@override
Widget build(BuildContext context, WidgetRef ref) {
Map<int, LessonDO> lessonMap = ref.watch(lessonsProvider).lessonMap;
LessonDO lesson = lessonMap[lessonNumber]!;
return Scaffold(
appBar: AppBar(
automaticallyImplyLeading: true,
leading: BackButton(
onPressed: () => context.pop(),
),
title: const Text("Menu"),
),
body: SingleChildScrollView(
child: Html(data: lesson.text!, customRenders: {
audioMatcher(): audioRender(),
})),
);
}
抛出异常:
Unhandled Exception: UnimplementedError: init() has not been implemented.
#0 VideoPlayerPlatform.init
video_player_platform_interface.dart:43
#1 _videoPlayerPlatform
video_player.dart:28
#2 VideoPlayerController.initialize
video_player.dart:404
#3 ChewieAudioController._initialize
chewie_player.dart:130
<asynchronous suspension>
如果我在调试器中跳过一个异常,则页面将使用音频控件呈现,但如果单击控件,则会再次引发相同的异常。
1条答案
按热度按时间bvn4nwqk1#
我成功了
我们的想法是将
audio
标记呈现为Icon,当点击它时,它会调用一些(任何)音频播放器。首先,我将
flutter_html
降级到2.2.1.(目前是稳定版本)。其次,从依赖项中删除了
flutter_html_audio
、chewie_player
和video_player
包。然后添加了
audioplayers
包。玩家:
渲染HTML:
我的HTML代码段:
资产指定为: