提问者:小点点

'String'不是'YoutubePlayerController'类型的子类型


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视频播放器的连接器是什么


共2个答案

匿名用户

我想你可以简单地创建一个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()一样,它可能会解决您的问题如果没有,您的响应中出现了问题,请尝试将其记录在控制台上以查看问题所在。