在flutter just_audio中音频标题之间的问题



我在just_audio中有一个播放列表,在一些音频标题之后人们必须采取行动。填写问题或做其他事情。我得到一个json数组

[{
"type":"item",
"name":"Intro - Mirin Dajo",
"stream":"http:/.......demo0::audio/mpeg",
"questionary":0,
},
{
"type":"item",
"name":"Dein Mentalcoach",
"stream":"http://e.......tdemo0::audio/mpeg",
"questionary":0,
},
{
"type":"questionary",
"name":"Dein Mentalcoach",
"stream":"http:/......ptdemo0::audio/mpeg",
"questionary":6525,
"questionarytitle":"Fragen zu Deinem Wohlbefinden",
},
{
"type":"item",
"name":"Achtung Killer!",
"stream":"http://cdn......ptdemo0::audio/mpeg",
"questionary":0,
"questionarytitle":"",
}]

键入questionaryId后应该打开一个新的屏幕,下一个音频应该播放。

sources.add(AudioSource.uri(
Uri.parse(splitStream(actualStream.stream)[0]), tag: AudioMetadata(
title: actualStream.name,
questionnaireId:
actualStream.questionary.toString(),
),));

源被添加到AudioSource列表中。

我的问题是我怎样才能完成那个任务。暂停播放列表显示的问题,并继续播放列表。什么好主意吗?我尝试了元数据,如果questionnaiid不为0也…关于

我找到了一个解决办法,虽然不漂亮,但很有效。

for (var entry in entries) {
sources.add(AudioSource.uri(
Uri.parse(splitStream(entry.stream)[0]),
tag: AudioMetadata(
type: entry.type,
questionnaireId: entry.questionary.toString(),
),
));

我使用AudioMetadata来添加我的Object的类型,如果存在问卷的Id。

final metadata =                   player.sequenceState.currentSource.tag as AudioMetadata;
if (metadata.type == "questionary") {
player.pause();
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
QuestionPage(entries[player.currentIndex]),
));
}

在一个生命周期方法中,我检查AudioStream是否是问卷类型和(有AudioMetadata),然后推送问卷。

最新更新