【发布时间】:2021-01-21 13:38:40
【问题描述】:
我将 API 与提供程序一起用于从数据库中获取数据,并且我有一个 YouTube 视频链接列表,我想使用这些链接来呈现视频。但是由于错误,我无法将链接列表放入_controllers:
无法在初始化程序中访问实例成员“serviceProvider”。
尝试用不同的表达式替换对实例成员的引用。
这是我的代码:
static List<YoutubePlayerController> _controllers =
['uEZAT3YJvDw', 'zMPfxQunIRw', 'uEZAT3YJvDw'] //I want to replace this line with the api list of links
.map<YoutubePlayerController>(
(videoId) => YoutubePlayerController(
initialVideoId: videoId,
flags: const YoutubePlayerFlags(
autoPlay: false,
),
),
)
.toList();
ListView.separated(
scrollDirection: Axis.horizontal,
shrinkWrap: true,
itemBuilder: (context, index) {
return Card(
child: YoutubePlayer(
key: ObjectKey(_controllers[index]),
controller: _controllers[index],
actionsPadding: const EdgeInsets.only(left: 16.0),
bottomActions: [
CurrentPosition(),
ProgressBar(isExpanded: true),
const SizedBox(width: 10.0),
RemainingDuration(),
FullScreenButton(),
],
),
);
},
itemCount: _controllers.length,
)
class HomeDatum {
HomeDatum({
this.attachment,
});
var attachment; // this json carry the link
factory HomeDatum.fromJson(Map<String, dynamic> json) => HomeDatum(
attachment: json["attachment"],
);}
Future<dynamic> getVideosList() async {
http.Response response = await http
.get(url, headers: headers);
Map<dynamic, dynamic> responseData = json.decode(response.body);
var results;
if (responseData['status'] == 1) {
_homeDatum = [];
responseData['data'].forEach((element) {
_homeDatum.add(HomeDatum.fromJson(element));
});
results = true;
}
_isLoading = false;
notifyListeners();
return results;
}
【问题讨论】:
-
您可以将您的视频 ID 添加到一个数组中,然后将其传递给您的
YoutubePlayerController -
你能告诉我怎么做吗?
-
您在哪个页面播放视频?在同一页还是第二页?
-
在我的代码中提到的 list.seperate 的同一页面上
-
好的,我创建相同的,但首先我显示列表视图,然后在第二页传递特定的视频 ID,然后使用
YoutubePlayer播放视频
标签: flutter dart youtube-api