搜索插件、代码仓与 APP 分类

插件详情v2.1.0

y_player

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

AndroidiOSmacOSWindowsLinux
近 30 天下载
132
喜欢数
27
Pub 分数
150

安装插件

flutter pub add y_player

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

YPlayer 是一个 Flutter 包,可简化在 Flutter 应用中集成 YouTube 视频的过程。它提供了一个可自定义的视频播放器小部件,旨在跨多个平台无缝嵌入和播放 YouTube 内容。通过最少的设置,开发者可以使用视频 ID 或 URL 显示 YouTube 视频,支持响应式设计和基本播放控制。该包利用各平台上的原生 YouTube 播放器,以实现最佳性能和兼容性。

适合场景

  • 在应用中嵌入YouTube视频
  • 创建教育内容播放器
  • 构建媒体丰富的 Flutter 应用程序
  • 集成视频教程
  • 开发流媒体或娱乐应用

主要特点

  • 使用视频 ID 或 URL 简单嵌入视频
  • 支持 Android、iOS、macOS、Windows 和 Linux
  • 响应式且可自定义的播放器界面
  • 内置播放控制
  • 原生 YouTube 播放器集成

适合对象

  • Flutter 开发人员构建媒体应用
  • 教育类应用程序创作者
  • 带有视频库的内容平台
  • 需要YouTube视频播放的应用程序

使用建议

  • 需要互联网连接以加载视频
  • 超出基本控制之外的自定义功能有限
  • 取决于 YouTube API 的可用性
  • 某些平台可能需要额外的权限
  • 不适用于离线视频播放

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

YPlayer

Pub

Logo

YPlayer is a Flutter package that provides an easy-to-use YouTube video player widget. It leverages the power of the youtube_explode_dart package for fetching video information.

Features

  • Play YouTube videos directly in your Flutter app
  • Support for fullscreen mode
  • Optional autoplay
  • Video Quality selection
  • Playback speed control
  • Customizable loading and error widgets
  • Easy to use API with play, pause, and stop functionality
  • Callback support for player state changes and progress updates
  • Customizable progress bar colors
  • Improved handling of app lifecycle changes and fullscreen mode
  • Enhanced error handling and recovery
  • Separate handling of video and audio streams for better quality

Installation

Add y_player to your pubspec.yaml file:

dependencies:
  y_player: ^2.0.0

Then run:

flutter pub get

Usage

First, ensure that you initialize the YPlayer in your main.dart:

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

void main() {
  YPlayerInitializer.ensureInitialized();
  runApp(MyApp());
}

Here's a simple example of how to use YPlayer in your Flutter app:

import 'package:flutter/material.dart';
import 'package:y_player/y_player_main.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}');
        },
        onControllerReady: (controller) {
          print('Controller is ready!');
        },
      ),
    );
  }
}

Migrating to 2.0.0

Version 2.0.0 introduces significant changes to address the deprecation of muxed streams in YouTube and to improve overall performance. Here are the key changes:

To migrate your existing code:

  1. Update your pubspec.yaml to use version 2.0.0 or later of y_player.

  2. In your main.dart, add the initialization call:

void main() {
  YPlayerInitializer.ensureInitialized();
  runApp(MyApp());
}
  1. Update your YPlayer widget usage. The basic usage remains the same, but some properties have changed:
YPlayer(
  youtubeUrl: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ',
  color: Colors.red, // New property for customizing controls color
  // materialProgressColors and cupertinoProgressColors are no longer available
)
  1. If you were using ChewieController directly, you'll need to update to use YPlayerController instead.

These changes address the deprecation of muxed streams in YouTube and provide a more robust and efficient video playback experience. The separate handling of video and audio streams allows for better quality options and more flexibility in playback.

API Reference

YPlayer

Constructor:

YPlayer({
  Key? key,
  required String youtubeUrl,
  double? aspectRatio,
  bool autoPlay = true,
  Color? color,
  Widget? placeholder,
  Widget? loadingWidget,
  Widget? errorWidget,
  YPlayerStateCallback? onStateChanged,
  YPlayerProgressCallback? onProgressChanged,
  Function(YPlayerController controller)? onControllerReady,
})
YPlayerController

Methods:

  • play(): Starts or resumes video playback.
  • pause(): Pauses video playback.
  • stop(): Stops video playback and resets to the beginning.

Properties:

  • status: Gets the current status of the player (YPlayerStatus enum).
  • position: Gets the current playback position (Duration).
  • duration: Gets the total duration of the video (Duration).
  • isInitialized: Returns true if the player is fully initialized.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

所属分类

依赖

依赖清单 4 项

源码仓库

使用此插件的项目

暂无相关数据。