【发布时间】: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