flutter_fling
Simple plugin to cast media to FireStick and FireTv.
Utilises Amazon's Fling SDK.
NOTE: This plugin currently fling/cast from Android Devices. iOS support soon.
Installation
Add package to pubspec.yaml
flutter_fling: ^2.0.1
Add import
import 'package:flutter_fling/flutter_fling.dart';
Usage
Get Players
FlutterFling.startPlayerDiscovery((status, player) {
if (_flingDevices == null) _flingDevices = List();
if (status == PlayerDiscoveryStatus.FOUND)
_flingDevices.add(player);
else
_flingDevices.remove(player);
});
- Note: set
callback
asnull
to remove listener. You should clean up callback to prevent from leaking references.
Play media and listen for media state
FlutterFling.play((state, condition, position) {
_mediaState = '$state';
_mediaCondition = '$condition';
_mediaPosition = '$position';
},
player: _selectedPlayer,
mediaUri: "media_link_here",
mediaTitle: "Some Video",
)
- Note: set
callback
asnull
to remove listener. You should clean up callback to prevent from leaking references.
Pause Player
await FlutterFling.pausePlayer();
Resume Player
await FlutterFling.playPlayer();
Stop Player
await FlutterFling.stopPlayer();
Seek Forward Player (+10 sec)
await FlutterFling.seekForwardPlayer();
Seek Back Player (-10 sec)
await FlutterFling.seekBackPlayer();
Seek To Player
await FlutterFling.seekToPlayer(position: 30000)
Mute/Unmute Player
await FlutterFling.mutePlayer(bool);
Remove Controller when done
Note: This result in loss of control over playing media though playback itself isn't stopped. Required for cleanup.
await FlutterFling.stopDiscoveryController();
Possible States:
enum PlayerDiscoveryStatus { Found, Lost }
enum MediaState { NoSource, PreparingMedia, ReadyToPlay, Playing, Paused, Seeking, Finished, Error }
enum MediaCondition { Good, WarningContent, WarningBandwidth, ErrorContent, ErrorChannel, ErrorUnknown }
Libraries
Dart
- dart:ui
- Built-in types and core primitives for a Flutter application. [...]
- dart:async
- Support for asynchronous programming, with classes such as Future and Stream. [...]
- dart:collection
- Classes and utilities that supplement the collection support in dart:core. [...]
- dart:convert
- Encoders and decoders for converting between different data representations, including JSON and UTF-8. [...]
- dart:core
- Built-in types, collections, and other core functionality for every Dart program. [...]
- dart:developer
- Interact with developer tools such as the debugger and inspector. [...]
- dart:math
- Mathematical constants and functions, plus a random number generator. [...]
- dart:typed_data
- Lists that efficiently handle fixed sized data (for example, unsigned 8 byte integers) and SIMD numeric types. [...]
- dart:io
- File, socket, HTTP, and other I/O support for non-web applications. [...]
- dart:isolate
- Concurrent programming using isolates: independent workers that are similar to threads but don't share memory, communicating only via messages. [...]