Flutter audio_service 从 json 添加项目
Flutter audio_service add item from json
audio_service 从模型 class 中的 json 删除了新更新.. 我如何从 json 添加媒体项目?我的 json 看起来像这样
[
{
"id": "http://581.22.00.66:8500/1?type=http",
"title": "test",
"artist": "test",
"album": "test",
"artUri": "test.png",
"genre": "8535",
"displayDescription": "23"
},
{
"id": "http://581.22.00.66:6600/2?type=http",
"title": "test2",
"artist": "test2",
"album": "test2",
"artUri": "test2.png",
"genre": "1498",
"displayDescription": "23"
},
我们使用 dio json。
List<MediaItem> _queue = [];
void getdata() async {
final response = await Dio().get(Constants.url+'post.php', queryParameters: {
});
for (int i = 0; i < response.data.length; i++) {
_queue.add(response.data[i]);
}
}
错误:
Unhandled Exception: type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'MediaItem'
如果没有默认方法,您可以为 audio_service
的媒体模型创建一个 JSON(map) 解析器函数。
注意:解析器函数仅转换您在 json 数据中提供的字段。
MediaItem jsonToMeidaItem(Map data) {
return MediaItem(
id: data['id'].toString(),
title: data['title'].toString(),
artist: data['artist'].toString(),
album: data['album'].toString(),
artUri: data['artUri'].toString(),
genre: data['genre'].toString(),
displayDescription: data['displayDescription'].toString(),
);
}
然后您可以将 JSON 数据转换为 MediaItem
。
已将 converter-function 替换为您的代码:
List<MediaItem> _queue = [];
void getdata() async {
final response = await Dio().get(Constants.url+'post.php', queryParameters: {
});
for (int i = 0; i < response.data.length; i++) {
final MediaItem mediaItem = jsonToMeidaItem(response.data[i]);
_queue.add(mediaItem);
}
}
audio_service 从模型 class 中的 json 删除了新更新.. 我如何从 json 添加媒体项目?我的 json 看起来像这样
[
{
"id": "http://581.22.00.66:8500/1?type=http",
"title": "test",
"artist": "test",
"album": "test",
"artUri": "test.png",
"genre": "8535",
"displayDescription": "23"
},
{
"id": "http://581.22.00.66:6600/2?type=http",
"title": "test2",
"artist": "test2",
"album": "test2",
"artUri": "test2.png",
"genre": "1498",
"displayDescription": "23"
},
我们使用 dio json。
List<MediaItem> _queue = [];
void getdata() async {
final response = await Dio().get(Constants.url+'post.php', queryParameters: {
});
for (int i = 0; i < response.data.length; i++) {
_queue.add(response.data[i]);
}
}
错误:
Unhandled Exception: type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'MediaItem'
如果没有默认方法,您可以为 audio_service
的媒体模型创建一个 JSON(map) 解析器函数。
注意:解析器函数仅转换您在 json 数据中提供的字段。
MediaItem jsonToMeidaItem(Map data) {
return MediaItem(
id: data['id'].toString(),
title: data['title'].toString(),
artist: data['artist'].toString(),
album: data['album'].toString(),
artUri: data['artUri'].toString(),
genre: data['genre'].toString(),
displayDescription: data['displayDescription'].toString(),
);
}
然后您可以将 JSON 数据转换为 MediaItem
。
已将 converter-function 替换为您的代码:
List<MediaItem> _queue = [];
void getdata() async {
final response = await Dio().get(Constants.url+'post.php', queryParameters: {
});
for (int i = 0; i < response.data.length; i++) {
final MediaItem mediaItem = jsonToMeidaItem(response.data[i]);
_queue.add(mediaItem);
}
}