android_vlc_player 1.1.0 copy "android_vlc_player: ^1.1.0" to clipboard
android_vlc_player: ^1.1.0 copied to clipboard

PlatformAndroid

A new Flutter plugin to launch the vlc player from your android app.

example/lib/main.dart

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

import 'package:flutter/services.dart';
import 'package:android_vlc_player/android_vlc_player.dart';

void main() {
  runApp(const App());
}

class App extends StatelessWidget {
  const App({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        useMaterial3: true,
      ),
      home: ScaffoldMessenger(
        child: Scaffold(
          appBar: AppBar(
            title: const Text('VLC Plugin Example'),
          ),
          body: const MyApp(),
        ),
      ),
    );
  }
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final _androidVlcPlayerPlugin = AndroidVlcPlayer();
  bool? _vlc;
  final TextEditingController _videoController = TextEditingController();
  final TextEditingController _mimeController = TextEditingController();
  final TextEditingController _titleController = TextEditingController();

  Future<void> vlc({
    required String file,
    required String mimeType,
    required String title,
  }) async {
    bool vlc;
    try {
      vlc = await _androidVlcPlayerPlugin.startVLCPlayer(
            file: file,
            mimeType: mimeType,
            title: title,
          ) ??
          false;
    } on PlatformException {
      vlc = false;
    }

    setState(() {
      _vlc = vlc;
    });
  }

  @override
  void initState() {
    super.initState();
    _videoController.clear();
    _mimeController.clear();
    _titleController.clear();
  }

  @override
  void dispose() {
    _videoController.dispose();
    _mimeController.dispose();
    _titleController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Center(
      child: SingleChildScrollView(
        physics: const BouncingScrollPhysics(),
        child: Padding(
          padding: const EdgeInsets.symmetric(horizontal: 10.0),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              Text('is VLC installed: ${_vlc.toString()}\n'),
              Padding(
                padding: const EdgeInsets.only(bottom: 10.0),
                child: TextField(
                  controller: _videoController,
                  decoration: const InputDecoration(
                    hintText: "Video Url",
                    border: OutlineInputBorder(),
                  ),
                  onSubmitted: (url) {
                    if (url.isNotEmpty) {
                      _videoController.text = url;
                    }
                  },
                ),
              ),
              Padding(
                padding: const EdgeInsets.only(bottom: 10.0),
                child: TextField(
                  controller: _mimeController,
                  decoration: const InputDecoration(
                    hintText: "Mime Type",
                    border: OutlineInputBorder(),
                  ),
                  onSubmitted: (mime) {
                    if (mime.isNotEmpty) {
                      _mimeController.text = mime;
                    }
                  },
                ),
              ),
              Padding(
                padding: const EdgeInsets.only(bottom: 10.0),
                child: TextField(
                  controller: _titleController,
                  decoration: const InputDecoration(
                    hintText: "Title ",
                    border: OutlineInputBorder(),
                  ),
                  onSubmitted: (title) {
                    if (title.isNotEmpty) {
                      _titleController.text = title;
                    }
                  },
                ),
              ),
              ElevatedButton(
                onPressed: () {
                  if (_videoController.value.text.isNotEmpty &&
                      _mimeController.value.text.isNotEmpty &&
                      _titleController.value.text.isNotEmpty) {
                    vlc(
                      file: _videoController.value.text,
                      mimeType: _mimeController.value.text,
                      title: _titleController.value.text,
                    );
                  } else {
                    ScaffoldMessenger.of(context).showSnackBar(
                      const SnackBar(
                        content: Text("Enter Video data To Start VLC"),
                      ),
                    );
                  }
                },
                child: const Text("start VLC"),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

//http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4
//video/*
//test
1
likes
160
pub points
35%
popularity
screenshot

Publisher

unverified uploader

A new Flutter plugin to launch the vlc player from your android app.

Repository (GitHub)
View/report issues

Topics

#android #video #player #vlc

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on android_vlc_player