flutter “String”不是类型“YoutubePlayerController”的子类型

prdp8dxp  于 2023-01-21  发布在  Flutter
关注(0)|答案(2)|浏览(124)
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视频播放器的控制器

z2acfund

z2acfund1#

我想您可以简单地创建一个YoutubePlayerController并给予其作为参数

controller: YoutubePlayerController(_documentSnapshot["url"]),

有关控制器的更多信息,请参阅the docu

zkure5ic

zkure5ic2#

首先,发生这个错误是因为你试图调用YoutubePlayerController类的一个属性,这个属性应该是其父类的一个类型,但是你却以字符串的类型调用它,我猜这个错误发生在你代码的下面部分:

Text(_documentSnapshot["title"],style: TextStyle(color: Colors.blueAccent,fontStyle: FontStyle.italic,fontSize: 20,fontWeight: FontWeight.w300),),

因为Text()小工具只接受字符串数据类型,所以您应该通过在_documentSnapshot["title"]属性的末尾添加.toString()函数将调用示例转换为字符串,就像_documentSnapshot["title"].toString()一样,它可能会修复您的问题。如果没有,您的响应中有错误,请尝试将其记录到控制台上以查看问题所在。

相关问题