如何在flutter中播放youtube视频

问题描述 投票:0回答:4

我正在尝试在 Flutter Web 应用程序中播放 YouTube 视频,但使用默认的 VideoPlayer,您需要 YouTube src 路径 (...googlevideos.com/...),但我无法正确获取该路径。

我做了一些谷歌研究,发现了以下软件包:

但是它们都不会直接播放 YouTube 链接,而且第一个不支持 Flutter-Web。

有人有此主题的经验或知道如何获取 YouTube 源链接(例如使用 API)吗?

flutter flutter-web
4个回答
2
投票

EDIT1:YouTube 似乎每天都会对源视频文件 url 进行洗牌,因此使用源文件 url 并不是一个可行的解决方案。另一种选择是将视频添加到本地项目中,并在视频顶部添加一个叠加的“YouTube”按钮,当用户点击该按钮时,他将被带到 YouTube 上的视频。使用资源视频的缺点是您无法调整进度条(至少在 2.4.5 版本中)。

您可以使用官方的 video_player 软件包,并通过使用 VLC 媒体播放器 获取 YouTube 视频文件的源文件路径,步骤如下:

  1. 在 YouTube 上查找视频并从地址栏中复制 URL。
  2. 在 VLC 中,前往媒体 > 打开网络流。
  3. 将 YouTube 链接粘贴到框中,然后单击“播放”。
  4. 在“工具”下,单击编解码器信息。
  5. 在“位置”框中,右键单击文本块,然后单击“全选”。这是您本地视频文件的 URL。

这些步骤几乎是从这里找到的复制/粘贴:如何获取 YouTube 视频文件的直接链接

您还可以使用 youtube_player_iframe 软件包,但请注意,如果您在使用该播放器时将鼠标悬停在视频顶部,则无法滚动内容,并且似乎没有此处讨论的解决方法:鼠标滚动卡住当光标位于 youtube_player_iframe 顶部时。这是我决定使用官方视频播放器包的唯一原因。


1
投票

您尝试过这个包吗:youtube_player_iframe:^2.3.0 在这里找到它https://pub.dev/packages/youtube_player_iframe


0
投票

现在 [pub.dev] 中有一个名为

youtube_player_flutter
的包。 这里。您可以在那里找到他们的文档,非常简单易懂。


0
投票

YPlayer是一个Flutter包,提供了一个易于使用的YouTube视频播放器小部件。

y_player 添加到您的 pubspec.yaml 文件中:

dependencies:
  y_player: ^1.0.2+1

以下是如何在 Flutter 应用程序中使用 YPlayer 的简单示例:

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

class MyVideoPlayer extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('YPlayer Example')),
      body: YPlayer(
        youtubeUrl: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ',
        onStateChanged: (status) {
          print('Player Status: $status');
        },
        onProgressChanged: (position, duration) {
          print('Progress: ${position.inSeconds}/${duration.inSeconds}');
        },
      ),
    );
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.