Bottom NavBar Player
A Flutter plugin to play audio and video in BottomNavigationBar and bottomSheet with file
, web
and asset
playback capabilities.
Simply play Audio
and Video
in different input methods in the list or anywhere else.
Android | iOS | Web | |
---|---|---|---|
Support | SDK 16+ | 11.0+ | Any* |
Preview
Getting Started
In order to use this package, do import
import 'package:bottom_navbar_player/bottom_navbar_player.dart';
First, create an instance of the class:
final bottomNavBarPlayer = BottomNavBarPlayer();
Set the player widget for BottomNavigationBar
or bottomSheet
scaffold:
Scaffold(
bottomSheet: bottomNavBarPlayer.view(),
),
Video player
To play the Video
from the URL
, Asset
and File
proceed as follows:
MaterialButton(
onPressed: () => bottomNavBarPlayer.play(
/// [url]
'https://flutter.github.io/assets-for-api-docs/assets/videos/bee.mp4',
/// [Assest] 'assets/bee.mp4' ,
/// [File] '/storage/sdcard/Download/bee.mp4' ,
sourceType: SourceType.url,///or [assest] SourceType.asset ,[File] SourceType.file
playerSize: PlayerSize.max, ///or [min] PlayerSize.min
mediaType: MediaType.video,
),
child: const Text('from URL'),
),
Audio player
To play the Audio
from the URL
, Asset
and File
proceed as follows:
MaterialButton(
onPressed: () => bottomNavBarPlayer.play(
/// [url]
'https://download.samplelib.com/mp3/sample-9s.mp3',
/// [Assest] 'assets/audio.mp3' ,
/// [File] '/storage/sdcard/Download/audio_file.mp3' ,
sourceType: SourceType.url,///or [Assest] SourceType.asset ,[File] SourceType.file
playerSize: PlayerSize.max, ///or [min] PlayerSize.min
mediaType: MediaType.audio
),
child: const Text('from URL'),
)
Permissions and configuration
Android
If you use an internet URL:
<uses-permission android:name="android.permission.INTERNET"/>
If you use the File:
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE"/>
<!-- or -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
If you wish to connect to non-HTTPS URLS, or if you use a feature that depends on the proxy such as headers, caching or stream audio sources, also add the following attribute to the application
element:
<application ... android:usesCleartextTraffic="true">
iOS
If you wish to connect to non-HTTPS URLS, or if you use a feature that depends on the proxy such as headers, caching or stream audio sources, add the following to your Info.plist
file:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
License
MIT
About
Built with <3
by Mostafa Efafi