Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 使用flatter提供YouTube建议_Flutter - Fatal编程技术网

Flutter 使用flatter提供YouTube建议

Flutter 使用flatter提供YouTube建议,flutter,Flutter,我正在开发一个应用程序,为老年人使用颤振,该应用程序将要求老年人选择他感兴趣的主题,然后在应用程序的家中,我想提供有关该主题的YouTube视频,例如,如果他选择新闻,这将在家中提供 如果他在视频中点击,它将在YouTube应用程序中打开。我希望建议每2小时更改一次,他可以选择多个主题。有什么办法吗?使用此软件包搜索用户输入主题的视频,并使用显示视频来显示视频 导入pubspec.yaml中的库 dependencies: youtube_api: ^0.8.0 youtube_pla

我正在开发一个应用程序,为老年人使用颤振,该应用程序将要求老年人选择他感兴趣的主题,然后在应用程序的家中,我想提供有关该主题的YouTube视频,例如,如果他选择新闻,这将在家中提供

如果他在视频中点击,它将在YouTube应用程序中打开。我希望建议每2小时更改一次,他可以选择多个主题。有什么办法吗?

使用此软件包搜索用户输入主题的视频,并使用显示视频来显示视频

导入pubspec.yaml中的库

dependencies:
  youtube_api: ^0.8.0
  youtube_player_flutter: ^7.0.0+7
然后在显示视频的有状态小部件中,在build方法之后添加此函数,并在initState中调用它

void videoList(query) async{
   static String key = 'YOUR_API_KEY';# Get one by following this https://developers.google.com/youtube/registering_an_application
   YoutubeAPI ytApi = new YoutubeAPI(key,Type:"video",maxResults:20);
   List<YT_API> ytResult = [];
   ytResult = await ytApi.search(query);
   ytResult.forEach((video){
      String url = video['url'];
      videoId = YoutubePlayer.convertUrlToId(url);
      YoutubePlayerController _controller = YoutubePlayerController(
        initialVideoId: videoID,
        flags: YoutubePlayerFlags(
        autoPlay: false,
        ),
      ); 
      widgetList.add(Container(
         width:MediaQuery.of(context).size.width *0.9,
         child: YoutubePlayer(
           controller: _controller,
           showVideoProgressIndicator: true,
           videoProgressIndicatorColor: Colors.amber,
           progressColors: ProgressColors(
             playedColor: Colors.amber,
             handleColor: Colors.green[800],
           ),
           onReady () {
           },
         ),
      ); 
      widgetList.add(SizedBox(height:30));
      setState((){});
   });
}
变量声明

List<Widget> widgetList= [];
String query = "";
List-widgetList=[];
字符串查询=”;
内置

body:Container(
  color:Colors.white,
  child: SingleChildScrollView(
    child:Column(
      children:<Widget>[
       //Add a text field or a dropdown for the subject entry and set its on submit to (value){setState((){query=value});)
       SizedBox(height:30),
      ]+widgetList
    )
  )
)
主体:容器(
颜色:颜色,白色,
子:SingleChildScrollView(
子:列(
儿童:[
//为主题条目添加文本字段或下拉列表,并在提交时将其设置为(value){setState((){query=value});)
尺寸箱(高度:30),
]+widgetList
)
)
)

我在没有编辑器的情况下编写了这段代码,因此您必须进行更改,但这基本上是代码

是的,请我想要一些示例,如果我们可以在Twitter上联系您,则可以添加示例代码。您必须对其进行调试,但基本上就是这样。别忘了从注释中提供的url获取API密钥。我有一些示例问题你能给我你的推特吗?我不在社交媒体上。但你可以通过我的邮件与我联系:-siddharthagrawal2006@gmail.comI给你发了一封电子邮件
body:Container(
  color:Colors.white,
  child: SingleChildScrollView(
    child:Column(
      children:<Widget>[
       //Add a text field or a dropdown for the subject entry and set its on submit to (value){setState((){query=value});)
       SizedBox(height:30),
      ]+widgetList
    )
  )
)