Search packages, repositories and app categories

Package detailsv0.1.2

ext_video_player

Flutter plugin for displaying inline with other Flutter widgets on Android and iOS. This plugin also supports playing youtube videos & RTMP Streams

AndroidiOSWeb
30-day downloads
66
Likes
88
Pub points
110

Install package

flutter pub add ext_video_player

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

A Flutter plugin that enables inline video playback within Flutter widgets on Android, iOS, and Web. It supports playing YouTube videos and RTMP streams directly in the app interface. Designed for seamless integration, it allows developers to embed videos without leaving the Flutter UI. The plugin is ideal for apps requiring rich media content with minimal setup. It leverages native video players while maintaining a consistent look across platforms.

Use cases

  • Embedding YouTube videos in Flutter apps
  • Playing RTMP streams in real-time
  • Integrating video content within scrollable layouts
  • Creating media-rich educational apps
  • Building live streaming applications

Key features

  • Supports YouTube video URLs
  • Handles RTMP stream playback
  • Inline video rendering with Flutter widgets
  • Cross-platform compatibility (Android, iOS, Web)
  • Simple API for video control

Suitable for

  • Developers building media-heavy apps
  • Apps requiring live or on-demand video
  • Educational or entertainment platforms
  • Projects needing YouTube integration
  • Web and mobile apps with video content

Considerations

  • Requires internet connection for online videos
  • RTMP support may vary by platform
  • YouTube playback requires valid API key
  • Limited customization compared to native players
  • Web support may have browser-specific limitations

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

ext_video_player

Clone of video_player plugin with support for Youtube & RTMP

pub package

NOTICE

This Plugin uses all its code from video_player plugins which is the official video_player plugin Only few part of the code are modified.

Note

RTMP is only supported in Android (Working for iOS)

Installation

First, add ext_video_player as a dependency in your pubspec.yaml file.

iOS

Warning: The video player is not functional on iOS simulators. An iOS device must be used during development/testing.

Add the following entry to your Info.plist file, located in <project root>/ios/Runner/Info.plist:

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key>
  <true/>
</dict>

This entry allows your app to access video files by URL.

Android

Ensure the following permission is present in your Android Manifest file, located in <project root>/android/app/src/main/AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET"/>

The Flutter project template adds it, so it may already be there.

Web

Please check readme file of video_player

Example

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

void main() => runApp(VideoApp());

class VideoApp extends StatefulWidget {
  @override
  _VideoAppState createState() => _VideoAppState();
}

class _VideoAppState extends State<VideoApp> {
  VideoPlayerController _controller;

  @override
  void initState() {
    super.initState();
    _controller = VideoPlayerController.network(
        'http://www.sample-videos.com/video123/mp4/720/big_buck_bunny_720p_20mb.mp4')
      ..initialize().then((_) {
        // Ensure the first frame is shown after the video is initialized, even before the play button has been pressed.
        setState(() {});
      });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Video Demo',
      home: Scaffold(
        body: Center(
          child: _controller.value.initialized
              ? AspectRatio(
                  aspectRatio: _controller.value.aspectRatio,
                  child: VideoPlayer(_controller),
                )
              : Container(),
        ),
        floatingActionButton: FloatingActionButton(
          onPressed: () {
            setState(() {
              _controller.value.isPlaying
                  ? _controller.pause()
                  : _controller.play();
            });
          },
          child: Icon(
            _controller.value.isPlaying ? Icons.pause : Icons.play_arrow,
          ),
        ),
      ),
    );
  }

  @override
  void dispose() {
    super.dispose();
    _controller.dispose();
  }
}

For more code please check example project

Buy Me a Coffee

Buy Me A Coffee

Categories

Dependencies

Dependency list 5 items

Source repository

Projects using this package

No data available yet.