如何解决如何显示YouTube视频链接从数据库中抖动
我有一个此类,它处理来自未来函数的数据:
Class MyYoutube {
final int index ;
final String link; // youtube Link
MyYoutube(this.index,this.link); }
要获得此链接,我有此页面使用了Future函数:
import 'dart:convert';
import 'package:http/http.dart' as http;
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:youtube_player_flutter/youtube_player_flutter.dart';
class VideoPlayer extends StatefulWidget {
@override
_VideoPlayerState createState() => _VideoPlayerState();
}
class _VideoPlayerState extends State<VideoPlayer> {
YoutubePlayerController _controller = YoutubePlayerController(
initialVideoId: '',flags: YoutubePlayerFlags(
autoPlay: false,mute: false,));
@override
Widget build(BuildContext context) {
Future<List> MyVideo() async {
var url = ' 10.0.0.2/api/link.php';
var respons = http.get(url);
var data = jsonDecode(respons.body);
for (var x in data) {
MyYoutube newvideo = MyYoutube(x['index'],x['title_k'],x['title_a'],x['aya'],x['link'],x['activity_k'],x['activity_a'],x['act_id']);
video.add(newvideo);
}
return video;
}
return Scaffold(
body: Container(
child: YoutubePlayer(
controller: _controller,showVideoProgressIndicator: true,progressIndicatorColor: Colors.blueAccent,),));
}
}
问题是如何在YouTube控制器中使用从未来获得的链接?
解决方法
非常感谢,我自己解决了问题,将Video Player Controller移到了将来的构建器中,并将初始Video Id的值设置为链接获取表单数据库。
return FutureBuilder(
future: fetchDigrees(),builder: (context,snapshot) {
Map rdata = ModalRoute.of(context).settings.arguments;
var lang = rdata['lang'];
if (snapshot.data == null) {
return Center(
child: Text("Loading"),);
} else {
YoutubePlayerController _controller = YoutubePlayerController(
initialVideoId: snapshot.data[0].link,flags: YoutubePlayerFlags(
autoPlay: false,mute: false,));
return Container(
显示视频播放器,并且正常工作
YoutubePlayer(
controller: _controller,showVideoProgressIndicator: true,progressIndicatorColor: Colors.blueAccent,),
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。