flutter - AssetsAudioPlayer 只播放最后一个索引的音频
问题描述
我正在使用列表视图在我的颤振应用程序中显示图像和文本。我已将资产路径和文本存储在 Json 文件中,并将其转换为列表。获取图像资产路径并显示正确的路径似乎没有问题,但从其资产播放音频文件时并非如此。
我正在使用这个包import 'package:assets_audio_player/assets_audio_player.dart';
宣言 final AssetsAudioPlayer playAudio = AssetsAudioPlayer();
这是主要的小部件
@override
Widget build(BuildContext context) {
Widget _buildRow(int idx) {
for (var translations in widget.category.translations) {
_wordList = widget.category.translations[idx];
return Container(
height: 88.0,
child: Card(
child: ListTile(
onTap: () {
playAudio.open(
Audio(_wordList.audio),
);
// player.play(_wordList.audio);
log(_wordList.audio, name: 'my.other.category');
},
onLongPress: () {},
leading: SizedBox(
width: 50.0,
height: 88.0,
child: Image(
image: AssetImage(_wordList.emoji),
fit: BoxFit.contain,
),
),
title: Text(
_wordList.akan,
style: TextStyle(fontSize: 18),
),
subtitle: Text(
_wordList.english,
style: TextStyle(fontSize: 18, color: Colors.black),
),
trailing: const Icon(Icons.play_arrow, size: 28),
),
),
);
}
}
由于 json 文件中的图像资产没有问题,我不明白为什么音频会这样存储它们,
{
"english": "mother",
"akan": "ɛna",
"emoji": "assets/icons/family_mother.png",
"audio": "assets/audio/family_mother.mp3"
},
解决方案
通过迭代生成新的 listtile 小部件然后将其放入 listview 来解决它
推荐阅读
- javascript - 按 ID 映射对象数组并更新数组中的每个现有对象
- cakephp - 将 CakePHP 从 2.8.0 升级到 2.10.20
- c++ - dip::EuclideanSkeleton 不起作用(未处理的异常)
- linux - 从txt文件中读取变量名
- java - 在 Spring Boot 中解析回历日期
- timeline - Pepper 右肩间距不会在时间轴 IR 检查员中响应
- java - 将列表项从 html 表保存到 Mysql
- spring-boot - FF4j Web 控制台未正确显示
- php - 如何在 PHP 中将 3D (PSD2) 安全支付认证与 PayPal 集成
- android - 如何在 StaggeredGridLayout 中自定义放置项目?