Flutter YouTube视频播放插件youtube_dart的使用

发布于 1周前 作者 phonegap100 来自 Flutter

Flutter YouTube视频播放插件youtube_dart的使用

youtube_dart 是一个用于在跨平台应用中抓取 YouTube 数据的插件,并且支持服务器端使用,无需 API 即可获取数据。

快速开始

首先,确保你已经在 pubspec.yaml 文件中添加了 youtube_dart 依赖:

dependencies:
  youtube_dart: ^1.0.0

然后运行 flutter pub get 来安装该依赖。

接下来是一个简单的示例代码来展示如何使用 youtube_dart 获取 YouTube 视频信息:

import 'dart:convert';
import 'dart:io';

import 'package:youtube_dart/youtube_dart.dart';

void main() async {
  // 创建一个 Youtube 对象并传入视频的 ID
  Youtube yt = Youtube("SQssRqqE0yo");

  // 使用 info 方法获取视频信息
  var res = await yt.info(null);

  // 打印获取到的信息
  print(jsonEncode(res));
}

上述代码会输出一个包含视频详细信息的 JSON 字符串。例如:

{
    "ok": true,
    "result": {
        "title": "Cara Build Azkagram Di github actions || Azkadev",
        "author_name": "Azkadev",
        "author_url": "https://www.youtube.com/channel/UC928-F8HenjZD1zNdMY42vA",
        "type": "video",
        "height": 113,
        "width": 200,
        "version": "1.0",
        "provider_name": "YouTube",
        "provider_url": "https://www.youtube.com/",
        "thumbnail_height": 360,
        "thumbnail_width": 480,
        "thumbnail_url": "https://i.ytimg.com/vi/SQssRqqE0yo/hqdefault.jpg",
        "html": "<iframe width=\"200\" height=\"113\" src=\"https://www.youtube.com/embed/SQssRqqE0yo?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen title=\"Cara Build Azkagram Di github actions || Azkadev\"></iframe>",
        "thumbnail": {
            "hd": "https://img.youtube.com/vi/SQssRqqE0yo/hqdefault.jpg",
            "sd": "https://img.youtube.com/vi/SQssRqqE0yo/sddefault.jpg",
            "mq": "https://img.youtube.com/vi/SQssRqqE0yo/mqdefault.jpg",
            "small": "https://img.youtube.com/vi/SQssRqqE0yo/default.jpg"
        }
    }
}

完整示例 Demo

下面是一个完整的 Flutter 应用示例,展示如何使用 youtube_dart 插件来获取 YouTube 视频信息并在屏幕上显示。

  1. 创建一个新的 Flutter 项目

    flutter create youtube_player
    cd youtube_player
    
  2. pubspec.yaml 中添加依赖

    dependencies:
      flutter:
        sdk: flutter
      youtube_dart: ^1.0.0
    
  3. 运行 flutter pub get

    flutter pub get
    
  4. 修改 main.dart 文件

import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:youtube_dart/youtube_dart.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('YouTube Video Info'),
        ),
        body: Center(
          child: FutureBuilder(
            future: fetchVideoInfo(),
            builder: (context, snapshot) {
              if (snapshot.connectionState == ConnectionState.waiting) {
                return CircularProgressIndicator();
              } else if (snapshot.hasError) {
                return Text('Error: ${snapshot.error}');
              } else {
                final videoInfo = snapshot.data;
                return Column(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: [
                    Text('Title: ${videoInfo['title']}'),
                    Text('Author: ${videoInfo['author_name']}'),
                    Text('URL: ${videoInfo['author_url']}'),
                    Image.network(videoInfo['thumbnail_url']),
                  ],
                );
              }
            },
          ),
        ),
      ),
    );
  }

  Future<Map<String, dynamic>> fetchVideoInfo() async {
    Youtube yt = Youtube("SQssRqqE0yo");
    var res = await yt.info(null);
    return res['result'];
  }
}

更多关于Flutter YouTube视频播放插件youtube_dart的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter YouTube视频播放插件youtube_dart的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何在Flutter应用中使用youtube_dart插件来播放YouTube视频的示例代码。这个插件允许你嵌入YouTube视频到你的Flutter应用中。

首先,你需要在你的pubspec.yaml文件中添加youtube_dart依赖:

dependencies:
  flutter:
    sdk: flutter
  youtube_dart: ^^最新版本号(请替换为实际的最新版本号)

然后运行flutter pub get来安装依赖。

接下来,你可以在你的Flutter应用中创建一个页面来显示YouTube视频。以下是一个简单的示例:

import 'package:flutter/material.dart';
import 'package:youtube_dart/youtube_dart.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'YouTube Video Player',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: YouTubeVideoPage(),
    );
  }
}

class YouTubeVideoPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('YouTube Video Example'),
      ),
      body: Center(
        child: YoutubePlayerBuilder(
          playerId: 'playerId', // This ID should be unique for each player instance
          videoId: 'dQw4w9WgXcQ', // Replace with your desired YouTube video ID
          context: context,
          progressColors: ProgressColors(
            playedColor: Colors.red,
            handleColor: Colors.blueAccent,
          ),
          builder: (context, player) {
            return Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                SizedBox(
                  height: 200,
                  child: player,
                ),
                ElevatedButton(
                  onPressed: () {
                    // Play the video
                    player.play();
                  },
                  child: Text('Play'),
                ),
                ElevatedButton(
                  onPressed: () {
                    // Pause the video
                    player.pause();
                  },
                  child: Text('Pause'),
                ),
              ],
            );
          },
        ),
      ),
    );
  }
}

在这个示例中,我们创建了一个简单的Flutter应用,其中包含一个YouTube视频播放器。YoutubePlayerBuilder是一个方便的widget,它允许你构建和配置YouTube播放器。

  • playerId:这是播放器的唯一标识符,确保每个播放器实例都有一个唯一的ID。
  • videoId:这是你想要播放的YouTube视频的ID。
  • context:当前的Flutter上下文。
  • builder:一个函数,它接收上下文和播放器控制器作为参数,并返回一个包含播放器的widget。

builder函数中,我们创建了一个包含播放器和两个按钮的列:一个用于播放视频,另一个用于暂停视频。

注意:在实际应用中,你需要处理更多的状态,比如视频加载、错误处理等。此外,youtube_dart插件可能会随着YouTube API的更新而发生变化,因此请查阅最新的文档以确保兼容性。

希望这个示例能帮助你开始在Flutter应用中使用youtube_dart插件来播放YouTube视频!

回到顶部