Flutter flatter youtube_player_flatter:^7.0.0+;7 http请求错误

Flutter flatter youtube_player_flatter:^7.0.0+;7 http请求错误,flutter,Flutter,我正在使用此软件包播放视频,但我收到此错误 HTTP request failed, statusCode: 404, https://i3.ytimg.com/vi_webp/qs8vn5rzs-0/sddefault.webp When the exception was thrown, this was the stack: #0 NetworkImage._loadAsync (package:flutter/src/painting/_network_image_io.d

我正在使用此
软件包
播放视频,但我收到此
错误

HTTP request failed, statusCode: 404, https://i3.ytimg.com/vi_webp/qs8vn5rzs-0/sddefault.webp

When the exception was thrown, this was the stack: 
#0      NetworkImage._loadAsync (package:flutter/src/painting/_network_image_io.dart:99:9)
<asynchronous suspension>
Image provider: NetworkImage("https://i3.ytimg.com/vi_webp/qs8vn5rzs-0/sddefault.webp", scale: 1.0)
Image key: NetworkImage("https://i3.ytimg.com/vi_webp/qs8vn5rzs-0/sddefault.webp", scale: 1.0)
HTTP请求失败,状态代码:404,https://i3.ytimg.com/vi_webp/qs8vn5rzs-0/sddefault.webp 引发异常时,这是堆栈: #0 NetworkImage.\u loadAsync(包:flatter/src/painting/\u network\u image\u io.dart:99:9) 图像提供程序:网络图像(“https://i3.ytimg.com/vi_webp/qs8vn5rzs-0/sddefault.webp,比例:1.0) 图像键:网络图像(“https://i3.ytimg.com/vi_webp/qs8vn5rzs-0/sddefault.webp,比例:1.0) 这是我的密码

class YouTubePage extends StatefulWidget {
  @override
  _YouTubePageState createState() => _YouTubePageState();
}

class _YouTubePageState extends State<YouTubePage> {
  @override
  void initState() {
    super.initState();
    getFevSub();
  }

  String fevSub = "music";
  void getFevSub() async {
    await FirebaseFirestore.instance
        .collection('users')
        .doc(FirebaseAuth.instance.currentUser.uid)
        .get()
        .then((data) {
      fevSub = data.data()['favSub'];
    });
    videoList(fevSub);
  }

  @override
  Widget build(BuildContext context) {
    return Scrollbar(
      child: SingleChildScrollView(
        scrollDirection: Axis.horizontal,
        child: Row(
            children: <Widget>[
                  SizedBox(width: 30),
                ] +
                widgetList),
      ),
    );
  }

  static String key;
  List<Widget> widgetList = [];
  YoutubePlayerController _controller;

  String videoID;
  bool _isPlayerReady = false;

  void videoList(fevSub) async {
    key = " ";
    YoutubeAPI ytApi = new YoutubeAPI(key, type: "video", maxResults: 10);
    List<YT_API> ytResult = [];
    ytResult = await ytApi.search(fevSub);
    ytResult.forEach((video) {
      String url = video.url;
      videoID = YoutubePlayer.convertUrlToId(url);
      _controller = YoutubePlayerController(
        initialVideoId: videoID,
        flags: YoutubePlayerFlags(
          autoPlay: true,
        ),
      );
      try {
        widgetList.add(
          YoutubePlayer(
            width: MediaQuery.of(context).size.width * 0.8,
            actionsPadding: EdgeInsets.all(10),
            liveUIColor: nave,
            controller: _controller,
            // showVideoProgressIndicator: true,
            progressIndicatorColor: yellow,
            progressColors: ProgressBarColors(
              playedColor: yellow,
              handleColor: nave,
            ),
            onReady: () {
              _isPlayerReady = true;
            },
          ),
        );
      } catch (e) {
        print(e);
      }
      widgetList.add(SizedBox(width: 15));
      setState(() {});
    });
  }
}
class YouTubePage扩展StatefulWidget{
@凌驾
_YouTubePageState createState()=>\u YouTubePageState();
}
类_youtubepatate扩展状态{
@凌驾
void initState(){
super.initState();
getFevSub();
}
String fevSub=“music”;
void getFevSub()异步{
等待FirebaseFirestore.instance
.collection('用户')
.doc(FirebaseAuth.instance.currentUser.uid)
.get()
.然后((数据){
fevSub=data.data()['favSub'];
});
视频列表(fevSub);
}
@凌驾
小部件构建(构建上下文){
返回滚动条(
子:SingleChildScrollView(
滚动方向:轴水平,
孩子:排(
儿童:[
尺寸箱(宽度:30),
] +
widgetList),
),
);
}
静态字符串键;
列表widgetList=[];
YoutubePlayerController\u控制器;
字符串videoID;
bool_isPlayerReady=假;
无效视频列表(fevSub)异步{
key=“”;
YoutubeAPI ytApi=新的YoutubeAPI(键,类型:“video”,最大结果:10);
列表结果=[];
ytResult=等待ytApi.search(fevSub);
ytResult.forEach((视频){
字符串url=video.url;
videoID=youtubeplyer.convertUrlToId(url);
_控制器=YoutubePlayerController(
initialVideoId:videoID,
标志:YoutubePlayerFlags(
自动播放:对,
),
);
试一试{
widgetList.add(
YoutubePlayer(
宽度:MediaQuery.of(context).size.width*0.8,
行动铲:所有(10)个边集,
liveUIColor:中堂,
控制器:_控制器,
//showVideoProgressIndicator:对,
进度指示灯颜色:黄色,
ProgressColor:ProgressBarColor(
播放颜色:黄色,
手绘颜色:中堂,
),
onReady:(){
_isPlayerReady=true;
},
),
);
}捕获(e){
印刷品(e);
}
添加(SizedBox(宽度:15));
setState((){});
});
}
}

i我不确定此代码片段是否足以识别您的问题,你能提供更多的代码吗,还有,你是否遵循了这些文档?@Fahmisawaha我用完整的代码更新了它(我用YouTube API搜索用户fav主题的代码,并在YouTube播放器中提供),首先,你是否按照文档中的说明用androidx迁移了你的项目,第二,您不需要识别API密钥吗,我看到一根空弦@法米萨瓦哈你指的是什么?我刚从这里删除的代码不是空的吗?或teamviewer