【问题标题】:How can I play all audios form list using assets_audio_player in flutter?如何在颤动中使用 assets_audio_player 播放所有音频表单列表?
【发布时间】:2021-11-07 11:42:34
【问题描述】:

我正在从 Web API 获取音频 URL 并将它们存储到 List 并应用 assets_audio_player 它只会在第一个索引处播放音频。我使用 for 循环,但这不起作用。我该如何处理这个问题?

这里是获取音频 URL 的方法,在这个方法中,我实现了 for 循环,让播放器在每个索引处播放音频。

List<String> surahAudioList = [];

  Future getAudioData() async {
    String url = 'http://api.quran.com/api/v3/chapters/${widget.surahIndex}/verses?recitation=1&page=1&limit=16&text_type=words';
    var response = await http.get(Uri.parse(url));
    Map<String, dynamic> map = json.decode(response.body);
    List<dynamic> data = map['verses'];
    if (surahAudioList.length != 0) surahAudioList.clear();

    for (var i = 0; i < data.length; i++) {
      surahAudioList.add('https://audio.qurancdn.com/${data[i]['audio']["url"]}');

      _assetsAudioPlayer.open(Playlist(audios: [Audio.network(surahAudioList[i], metas: Metas(title: 'Song1', artist: 'Artist'))]), showNotification: true, autoStart: false);
    }

    print(surahAudioList);
  }

这些方法有助于播放和暂停音频。

  playMusic() async {
    await _assetsAudioPlayer.play();
  }

  pauseMusic() async {
    await _assetsAudioPlayer.pause();
  }

IconButton(
 onPressed: () => isPlaying ? pauseMusic() : playMusic(),
 icon: Icon(isPlaying ? Icons.pause_circle_filled : Icons.play_circle_fill),),

【问题讨论】:

  • 您想通过单击一个按钮同时播放多个音频吗?
  • @Vettiyanakan 是的先生,并且还想播放每个索引的音频,但每次它只播放索引 0 的音频。
  • @UsamaHafeez 你解决了吗?

标签: flutter dart web-audio-api audio-player


【解决方案1】:
assetsAudioPlayer.open(
  Playlist(
    audios: [
      Audio("assets/audios/song1.mp3"), // replace with your urls
      Audio("assets/audios/song2.mp3")
    ]
  ),
  loopMode: LoopMode.playlist //loop the full playlist
);

assetsAudioPlayer.next();
assetsAudioPlayer.prev();
assetsAudioPlayer.playlistPlayAtIndex(1);

参考此代码。 在您for loop 中,您将文件添加到PlayList 对象。然后单独播放。

assetsAudioPlayer.playlistPlayAtIndex(1);

您必须指定播放音频的索引。

编码愉快!

【讨论】:

  • 它仍在播放 0 索引音频,我从服务器获取了多个音频。我把网址放在你问的地方
  • 使用.playlistPlayAtIndex(文件索引);
猜你喜欢
  • 1970-01-01
  • 2021-10-10
  • 1970-01-01
  • 2020-07-14
  • 1970-01-01
  • 1970-01-01
  • 2020-08-10
  • 1970-01-01
  • 2022-08-23
相关资源
最近更新 更多