Search packages, repositories and app categories

Package detailsv1.2.0

flutter_cast_video

flutter_cast_video let you discover cast devices like Chrome Cast and Apple TV and connect to them.

AndroidiOS
30-day downloads
213
Likes
35
Pub points
140

Install package

flutter pub add flutter_cast_video

Package Overview

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

flutter_cast_video is a Flutter package that enables discovery and connection to casting devices such as Chrome Cast and Apple TV. It allows users to stream media content from their mobile apps to compatible displays, enhancing the viewing experience on larger screens. The package supports both Android and iOS platforms, providing seamless integration for developers aiming to add casting functionality to their applications. With minimal setup via pub add, it simplifies device detection and streaming workflows.

Use cases

  • Streaming videos to smart TVs
  • Enabling remote playback on Apple TV
  • Integrating casting into media apps
  • Supporting multi-device casting
  • Allowing live content mirroring
  • Facilitating home entertainment apps

Key features

  • Device discovery for Chromecast and Apple TV
  • Cross-platform support (Android & iOS)
  • Simple integration with pub add
  • Real-time casting capabilities
  • Built-in connection management
  • Secure streaming protocols

Suitable for

  • Media and video streaming apps
  • Smart home entertainment systems
  • Educational or presentation apps
  • Apps targeting large-screen viewing
  • Developers adding casting features quickly

Considerations

  • Requires compatible casting devices
  • Network connectivity essential
  • Limited to supported platforms
  • May need additional permissions
  • Depends on device availability
  • User must manually select target device

Original README

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

flutter_cast_video

This is a clone and enhanced version from fluter_video_cast

A Flutter plugin for iOS and Android for connecting to cast devices like Chromecast and Apple TV.

Installation

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

iOS

Set the minimum os target to iOS 11.0.

Initialize the Cast context in the application delegate ios/Runner/AppDelegate.m:

import UIKit
import Flutter
import GoogleCast

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate, GCKLoggerDelegate {
    let kReceiverAppID = kGCKDefaultMediaReceiverApplicationID
    let kDebugLoggingEnabled = true

    override func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        GeneratedPluginRegistrant.register(with: self)
        let criteria = GCKDiscoveryCriteria(applicationID: kReceiverAppID)
        let options = GCKCastOptions(discoveryCriteria: criteria)
        GCKCastContext.setSharedInstanceWith(options)
        GCKCastContext.sharedInstance().useDefaultExpandedMediaControls = true
        GCKLogger.sharedInstance().delegate = self
        return super.application(application, didFinishLaunchingWithOptions: launchOptions)
    }
}

Opt-in to the embedded views preview by adding a boolean property to the app's Info.plist file with the key io.flutter.embedded_views_preview and the value YES.

Android

Add dependencies in your module (app-level) Gradle file (usually android/app/build.gradle):

implementation 'com.google.android.gms:play-services-cast-framework:19.0.0'
implementation 'com.google.android.exoplayer:extension-cast:2.11.5'

Set the theme of the MainActivity to @style/Theme.AppCompat.NoActionBar in the application manifest android/app/src/main/AndroidManifest.xml:

<manifest ...
  <application ...
    <meta-data android:name="com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME"
               android:value="com.google.android.exoplayer2.ext.cast.DefaultCastOptionsProvider"/>
    ...
    <activity android:theme="@style/Theme.AppCompat.NoActionBar" ...

Make MainActivity extends FlutterFragmentActivity and initialize the Cast context:

CastContext.getSharedInstance(applicationContext)
Both

You can now add a ChromeCastButton widget to your widget tree.

The button can be controlled with the ChromeCastController that is passed to the ChromeCastButton's onButtonCreated callback.

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: CastSample(),
    );
  }
}


class CastSample extends StatefulWidget {
  @override
  _CastSampleState createState() => _CastSampleState();
}

class _CastSampleState extends State<CastSample> {
  ChromeCastController _controller;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Cast Sample'),
        actions: [
          ChromeCastButton(
            onButtonCreated: (controller) {
              setState(() => _controller = controller);
              _controller?.addSessionListener();
            },
            onSessionStarted: () {
              _controller?.loadMedia('https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4');
            },
          ),
        ],
      ),
    );
  }
}

See the example directory for a complete sample app.

Categories

Dependencies

Dependency list 1 items

Source repository

Projects using this package

No data available yet.