flutter_meedu_videoplayer 4.0.10 flutter_meedu_videoplayer: ^4.0.10 copied to clipboard
A cross Platform video player that uses video_player for android and ios and web, video_player_media_kit for windows and linux and macos.
flutter_meedu_videoplayer #
Cross-platform video player #
- For Android, Ios and Web we are using video player
- For Windows and Linux and macos we are using media_kit.
Features | iOS | Android | windows | linux | macos | web |
---|---|---|---|---|---|---|
Videos from Network | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Videos from Assets | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Videos from local files | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Looping | ✅ | ✅ | x | x | x | x |
AutoPlay | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Swipe to increase and decrease Sound | ✅ | ✅ | keyboard arrows | keyboard arrows | keyboard arrows | keyboard arrows |
Swipe to seek in video | ✅ | ✅ | keyboard arrows | keyboard arrows | keyboard arrows | keyboard arrows |
FullScreen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Launch Player as FullScreen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Playback Speed | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
fastForward / Rewind | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
srt subtitles | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Customize | partially | partially | partially | partially | partially | partially |
Controls #
seekSwipes: On mobile devices, allows the user to swipe horizontally to seek forward or backward in the video.
volumeSwipes: On mobile devices, allows the user to swipe vertically on the right side of the screen to control the video volume.
brightnessSwipes: On mobile devices, allows the user to swipe vertically on the left side of the screen to control the video brightness.
doubleTapToSeek: On mobile devices, allows the user to double-tap on the sides of the screen to seek forward or backward in the video.
desktopDoubleTapToFullScreen: On desktop devices, allows the user to double-click with the mouse to toggle full-screen mode.
volumeArrows: On desktop devices, allows the user to use the keyboard up and down arrows to increase or decrease the video volume.
seekArrows: On desktop devices, allows the user to use the keyboard right and left arrows to seek forward or backward in the video.
escapeKeyCloseFullScreen: On desktop devices, allows the user to press the Escape key to close full-screen mode.
numPadDecimalKeyToggleFit: On desktop devices, allows the user to press the NumPad Decimal key (.) to toggle the video fit.
enterKeyOpensFullScreen: On desktop devices, allows the user to press the Enter key to open full-screen mode.
spaceKeyTogglePlay: On desktop devices, allows the user to press the Space key to toggle between playing and pausing the video.
Initialize #
void main() {
initMeeduPlayer();
runApp(MyApp());
}
Setup #
Windows #
Everything ready.
Linux #
System shared libraries from distribution specific user-installed packages are used by-default. You can install these as follows.
Ubuntu / Debian
sudo apt install libmpv-dev mpv
Packaging
There are other ways to bundle these within your app package e.g. within Snap or Flatpak. Few examples:
Note: macos is not tested (if you have any problems open an issue) #
macOS #
Everything ready.
The minimum supported macOS version is 11.0,set MACOSX_DEPLOYMENT_TARGET = 11.0 macos\Runner.xcodeproj\project.pbxproj
Also, during the build phase, the following warnings are not critical and cannot be silenced:
#import "Headers/media_kit_video-Swift.h"
^
/path/to/media_kit/media_kit_test/build/macos/Build/Products/Debug/media_kit_video/media_kit_video.framework/Headers/media_kit_video-Swift.h:270:31: warning: 'objc_ownership' only applies to Objective-C object or block pointer types; type here is 'CVPixelBufferRef' (aka 'struct __CVBuffer *')
- (CVPixelBufferRef _Nullable __unsafe_unretained)copyPixelBuffer SWIFT_WARN_UNUSED_RESULT;
# 1 "<command line>" 1
^
<command line>:20:9: warning: 'POD_CONFIGURATION_DEBUG' macro redefined
#define POD_CONFIGURATION_DEBUG 1 DEBUG=1
^
#define POD_CONFIGURATION_DEBUG 1
^
iOS (replace original video_player with media_kit one) #
- The minimum supported iOS version is 13.0, so the target needs to be set IPHONEOS_DEPLOYMENT_TARGET to 13.0 in
ios\Runner.xcodeproj\project.pbxproj
- Just add this package in case you set iosUseMediaKit to true in initMeeduPlayer
dependencies:
...
media_kit_libs_ios_video: ^1.0.2 # iOS package for video (& audio) native libraries.
Also, software rendering is forced in the iOS simulator, due to an incompatibility with OpenGL ES.