【问题标题】:provides YouTube suggestions using flutter使用颤振提供 YouTube 建议
【发布时间】:2021-03-10 16:47:17
【问题描述】:

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

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

【问题讨论】:

    标签: flutter


    【解决方案1】:

    使用这个包https://pub.dev/packages/youtube_api搜索用户输入的主题的视频并显示视频使用https://pub.dev/packages/youtube_player_flutter显示视频。

    在您的 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((){});
       });
    }
    

    初始状态

    void initState(){
       super.initState();
       videoList(query);#I have declared the variables in next code block
    }
    

    变量声明

    List<Widget> widgetList= [];
    String query = "";
    

    内置

    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
        )
      )
    )
    

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

    【讨论】:

    • 是的,我想要一些样品,如果我们可以在 twitter 上联系,你可以接受
    • 添加了示例代码。您将不得不调试它,但基本上就是这样。不要忘记从 cmets 中提供的 url 获取 API 密钥
    • 我有一些问题可以给我你的推特吗??
    • 我不在社交媒体上。但是您可以通过我的邮件与我联系:- siddharthagrawal2006@gmail.com
    • 我给你发了一封邮件
    猜你喜欢
    • 2021-11-01
    • 2022-01-15
    • 2019-12-08
    • 2020-05-10
    • 2020-12-24
    • 2022-08-19
    • 2021-07-25
    • 2019-11-03
    • 1970-01-01
    相关资源
    最近更新 更多