All Projects → siddhesh-tamhanekar → Media_player

siddhesh-tamhanekar / Media_player

Licence: mit
An flutter media player to make media streaming apps effortlessly! read getting started tutorial on https://medium.com/@tamhanekar.siddhesh95/integrate-media-player-into-your-flutter-application-23040213f0c9

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Media player

Mpv.net
🎞 mpv.net is a modern media player for Windows that works just like mpv.
Stars: ✭ 737 (+1537.78%)
Mutual labels:  video-player, audio-player, media-player
Celluloid
A simple GTK+ frontend for mpv
Stars: ✭ 541 (+1102.22%)
Mutual labels:  video-player, audio-player, media-player
TonUINO
Alternative TonUINO Firmware
Stars: ✭ 112 (+148.89%)
Mutual labels:  audio-player, media-player
react-native-vlc-media-player
React native media player for video streaming and playing. Supports RTSP, RTMP and other protocols supported by VLC player
Stars: ✭ 221 (+391.11%)
Mutual labels:  video-player, media-player
kaltura-player-js
Kaltura Player JS Platform - Cloud TV and OVP Media Players
Stars: ✭ 83 (+84.44%)
Mutual labels:  video-player, media-player
Libvlc Go
Go bindings for libVLC and high-level media player interface
Stars: ✭ 188 (+317.78%)
Mutual labels:  video-player, media-player
dart vlc
🎞 Flutter audio / video playback, broadcast & recording library for Windows & Linux.
Stars: ✭ 439 (+875.56%)
Mutual labels:  video-player, audio-player
tutorials-hg1
These tutorials demonstrate the usage of the Harfang API
Stars: ✭ 12 (-73.33%)
Mutual labels:  video-player, audio-player
React Jplayer
Html5 audio and video player library for React
Stars: ✭ 128 (+184.44%)
Mutual labels:  video-player, audio-player
Artplayer
Kotlin实现的视频播放器,将MediaPlayer与VideoView解耦合,支持切换播放器内核(如ExoPlayer和ijkPlayer),支持自定义控制视图,提供MediaPlayerManager实现全屏模式,小屏幕模式等。
Stars: ✭ 471 (+946.67%)
Mutual labels:  video-player, media-player
Mpv Easy Player
MPV-EASY Player - A movie player based on mpv
Stars: ✭ 324 (+620%)
Mutual labels:  video-player, media-player
Playerdemo
一个视频播放器,开源版 potplayer ,用于总结播放器开发技术。
Stars: ✭ 491 (+991.11%)
Mutual labels:  video-player, media-player
Nicevieoplayer
IjkPlayer/MediaPlayer+TextureView,支持列表,完美切换全屏、小窗口的Android视频播放器
Stars: ✭ 2,114 (+4597.78%)
Mutual labels:  video-player, media-player
Glow
mpv Config File Generator for Windows
Stars: ✭ 167 (+271.11%)
Mutual labels:  video-player, media-player
flex-originals
🎧 A video and audio streaming web application
Stars: ✭ 36 (-20%)
Mutual labels:  video-player, audio-player
Web
Angular6 music player to search and play YouTube, SoundCloud and Mixcloud tracks
Stars: ✭ 156 (+246.67%)
Mutual labels:  video-player, audio-player
Flyleaf
Media Player .NET Library for WPF/WinForms (based on FFmpeg/DirectX)
Stars: ✭ 323 (+617.78%)
Mutual labels:  video-player, media-player
Sbplayerclient
支持全格式的mac版视频播放器
Stars: ✭ 110 (+144.44%)
Mutual labels:  video-player, audio-player
Glide
Linux/macOS media player based on GStreamer and GTK+
Stars: ✭ 123 (+173.33%)
Mutual labels:  video-player, media-player
Qmplay2
QMPlay2 is a video and audio player which can play most formats and codecs.
Stars: ✭ 310 (+588.89%)
Mutual labels:  video-player, audio-player

media_player(android support only)

This media player uses an google Exoplayer in android to play the media files.

Note: the media player is inspired and developer by google plugin video_player and uses most code of it and has extra features.

If you don't want to bother with implementing ui widgets and need a readymade video player Please visit http://flutter-media-player.cf

Github Link : https://github.com/siddhesh-tamhanekar/media_player

Getting Started Tutorial at medium: https://medium.com/google-exoplayer/dynamic-playlists-with-exoplayer-6f53e54a56c0

Please subscribe to our mailing list for get new updates. https://goo.gl/forms/RTnApDBve4scuUAu2

Features

  • Can play Audio and Video File URLs (mp3, mp4, m3u8 etc)
  • Playlist Support
  • Single Media File Play Support
  • Control over player (play, pause, next, prev, seek etc.)
  • can be used to create background player(mostly used for audio playing).
  • Persistent Notification
  • Retry method in order to make player start from where left (if internet connection was problem)

Screenshots

Getting Started

STEP 1: add dependancy into pubspec.yaml file

STEP 2: Add following code into AndroidManifest.xml

Add service android/app/AndroidManifest.xml

<service
    android:name="com.example.mediaplayer.AudioService"
    android:enabled="true"
    android:exported="false">
</service>

Add the permission for foreground service in same AndroidManifest.xml .

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

STEP 3: Add the following dependency into android/app/build.graddle

    android {
            compileOptions {
                sourceCompatibility JavaVersion.VERSION_1_8
                targetCompatibility JavaVersion.VERSION_1_8
            }
    }

Simple Example

import 'package:flutter/material.dart';
import 'package:media_player/data_sources.dart';
import 'package:media_player/media_player.dart';
import 'package:media_player/ui.dart';

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

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

class MyVideoScreen extends StatefulWidget {
  @override
  _MyVideoScreenState createState() => _MyVideoScreenState();
}

class _MyVideoScreenState extends State<MyVideoScreen> {
  MediaPlayer player;
  MediaFile song1 = MediaFile(
    title: "Song 1",
    type: "video",
    source: "http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/sl.m3u8",
    desc: "Note from Apple",
  );

  @override
  void initState() {
    // first argument for isBackground next for showNotification.
    player = MediaPlayerPlugin.create(isBackground: true, showNotification: true);
    initVideo();
    super.initState();
  }

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

  void initVideo() async {
    await player.initialize();
    await player.setSource(song1);
    player.play();
  }

  @override
  Widget build(BuildContext context) {
    return Column(children: [
      VideoPlayerView(player),
      VideoProgressIndicator(
        player,
        allowScrubbing: true,
         padding: EdgeInsets.symmetric(vertical:5.0),
      ),
      SizedBox(height:20.0),
      buildButtons()
    ]);
  }

  Row buildButtons() {
    return Row(
      children: <Widget>[
        FlatButton(
          child: Text("Prev"),
          onPressed: () {
            player.playPrev();
          },
        ),
        FlatButton(
          child: Text("Play"),
          onPressed: () {
            player.play();
          },
        ),
        FlatButton(
          child: Text("Pause"),
          onPressed: () {
            player.pause();
          },
        ),
        FlatButton(
          child: Text("Next"),
          onPressed: () {
            player.playNext();
          },
        ),
      ],
    );
  }
}


Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].