Expanded(
child: Container(
child: SingleChildScrollView(scrollDirection: Axis.vertical,
child: StreamBuilder(
stream: FirebaseFirestore.instance.collection("videoList").snapshots(),
builder: (context,AsyncSnapshot<QuerySnapshot>streamSnapshot){
if(streamSnapshot.hasData){
return ListView.separated(
shrinkWrap: true,
physics: ScrollPhysics(),
scrollDirection: Axis.vertical,
clipBehavior: Clip.hardEdge,
itemBuilder: (context, index) {
DocumentSnapshot _documentSnapshot=streamSnapshot.data!.docs[index];
return ListTile(
title: YoutubePlayer(
key: ObjectKey(_documentSnapshot["url"]),
controller: _documentSnapshot["url"],
actionsPadding: const EdgeInsets.only(left: 20.0),
bottomActions: [
CurrentPosition(),
const SizedBox(width: 10.0),
ProgressBar(isExpanded: true),
const SizedBox(width: 10.0),
RemainingDuration(),
FullScreenButton(),
],
),
subtitle: Text(_documentSnapshot["title"],style: TextStyle(color: Colors.blueAccent,fontStyle: FontStyle.italic,fontSize: 20,fontWeight: FontWeight.w300),),
);
},
itemCount: streamSnapshot.data!.docs.length,
separatorBuilder: (context, index) => const SizedBox(height: 7.5),
padding: EdgeInsets.only(left: 1,right: 1,top: 10));
}
return Center(child: CircularProgressIndicator(),);
},
),
),
),
),
我试图连接我的YouTube播放器与Firestore数据库,但我不知道,我想知道什么是YouTube视频播放器的控制器
2条答案
按热度按时间z2acfund1#
我想您可以简单地创建一个YoutubePlayerController并给予其作为参数
有关控制器的更多信息,请参阅the docu。
zkure5ic2#
首先,发生这个错误是因为你试图调用
YoutubePlayerController
类的一个属性,这个属性应该是其父类的一个类型,但是你却以字符串的类型调用它,我猜这个错误发生在你代码的下面部分:因为
Text()
小工具只接受字符串数据类型,所以您应该通过在_documentSnapshot["title"]
属性的末尾添加.toString()
函数将调用示例转换为字符串,就像_documentSnapshot["title"].toString()
一样,它可能会修复您的问题。如果没有,您的响应中有错误,请尝试将其记录到控制台上以查看问题所在。