AssetsAudioPlayer воспроизводит аудио только при последнем индексе

#flutter #dart

#flutter #dart

Вопрос:

Я использую listview для отображения изображений и текста в моем приложении flutter. Я сохранил путь к активу и текст в файле 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"
},
  

Ответ №1:

Решил проблему, создав новый виджет listtile с помощью итерации, а затем поместив его в listview