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播放器与fi恢复数据库连接,但我不知道,我想知道youtube视频播放器的连接器是什么
我想你可以简单地创建一个YoutubePlayerController并将其作为参数输入
controller: YoutubePlayerController(_documentSnapshot["url"]),
有关控制器的更多信息,请查看文档。
首先,发生此错误是因为您尝试调用YoutubePlayerController
类的属性,该属性应该是其父类的类型,但您在字符串类型中调用它,我想错误发生在代码的以下部分:
Text(_documentSnapshot["title"],style: TextStyle(color: Colors.blueAccent,fontStyle: FontStyle.italic,fontSize: 20,fontWeight: FontWeight.w300),),
因为Text()
小部件只接受字符串数据类型,所以您应该通过在的末尾添加
属性就像. toString()
函数来将调用实例转换为字符串_documentSnapshot["title"]_documentSnapshot["title"].toString()
一样,它可能会解决您的问题如果没有,您的响应中出现了问题,请尝试将其记录在控制台上以查看问题所在。