【发布时间】:2021-03-10 16:47:17
【问题描述】:
我正在使用颤振为老年人开发一个应用程序,该应用程序将要求老年人选择他感兴趣的主题,在应用程序的主页中我想提供有关该主题的 YouTube 视频,例如,如果他选择这将在家里提供的消息
如果他点击视频,它将在 YouTube 应用中打开,我希望每 2 小时更改一次建议,他可以选择多个主题。有什么想法我该怎么做?
【问题讨论】:
标签: flutter
我正在使用颤振为老年人开发一个应用程序,该应用程序将要求老年人选择他感兴趣的主题,在应用程序的主页中我想提供有关该主题的 YouTube 视频,例如,如果他选择这将在家里提供的消息
如果他点击视频,它将在 YouTube 应用中打开,我希望每 2 小时更改一次建议,他可以选择多个主题。有什么想法我该怎么做?
【问题讨论】:
标签: flutter
使用这个包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
)
)
)
我在没有编辑器的情况下编写了此代码,因此您必须进行更改,但这基本上是代码
【讨论】: