Code Monkey home page Code Monkey logo

neeko's Introduction

OpenFlutter

logo

微信公众号

wx

What's OpenFlutter

OpenFlutter is a open source organization of Flutter.OpenFutter is a central place for all community made Flutter packages.


什么是 OpenFlutter

OpenFlutter 是一个 Flutter 的开源组织。OpenFutter 致力于成为第三方 Flutter 包集中地。


OpenFlutter makes it easier.
Join us!
OpenFlutter 让 flutter 开发更简单。
加入我们!
Welcome to share the Flutter project to OpenFlutter.
随时欢迎分享 Flutter 项目到 OpenFlutter。

If you have any quetions or want to be member of OpenFluter, just e-mail me.

如果你有任何问题或者想成为OpenFlutter的一员,可以给我发邮件。

[email protected]

现有项目大致介绍

OpenFlutter
本组织相关一些介绍
about OpenFlutter intro

FlutterInAction
一些 flutter 相关文章收集项目
A collection of excellent articles about flutter.

tobias
支付宝插件
alipay plugin

fluwx
微信插件
wechat plugin

flutter_image_compress
图片压缩库,使用桥接原生实现,效率高于 dart 压缩
use kotlin/oc to compress image

tencent_cos
腾讯 cos 插件,上传图片使用
tencent cos plugin, upload picture to tencent

Flutter-Notebook
日更的 FlutterDemo 合集,今天你 fu 了吗 ,包含一些 demo,值得一试
some demo for flutter,everyday update

PullToRefresh
一些 UI 效果的实现,内含丰富 gif 图
UI solution, rich GIF demonstration.

flutter_ScreenUtil
屏幕适配的一个实现方案,欢迎关注
Screen adaptation scheme

loadmore
滚动到底加载更多,只支持 listview,易于使用
loadmore for listview, easy use.

flutter_gesture_password
九宫格解锁(手势解锁)
unlock with gesture

flutter_oktoast
仿 android toast 插件 纯 dart 实现
like android toast, pure flutter library ,not have native code.

flutter_navigation_bar
解决官方例子会不停销毁重建的问题
resolve gallery demos navigation bar will dispose's problem.

mmkv_flutter
mmkv库的flutter插件,mmkv是一个c++编写的高速key value库
mmkv library's flutter plugin, mmkv is a high-speed key value library written by c++.

flutter_ok_image
加载网络图片的框架,支持重试/失败/超时/加载动画
load net image,support retry/error/loading/timeout

rammus Plugin for AliCloud Push
阿里云推送插件。

flutter_page_indicator
Page indicator for flutter, with multiple build-in layouts. Forked from best-flutter.
酷炫的指示器,多达6种指示器样式。

neeko
Simple video player widget based on video_player.
基于video_player的播放器控件。

k_chart
Flutter K-Chart. K线图。

mini_calendar
Date component developed with Flutter, plans to support display, swipe left and right, add date mark, radio, display week, etc.
使用Flutter开发的日期组件,计划支持显示,左右滑动,添加日期标记,单选,显示星期等功能。

neeko's People

Contributors

jarvanmo avatar marykravets avatar rafaelfl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

neeko's Issues

Error building project after upgrade to Flutter 1.17

A recent update ([https://github.com/flutter/flutter/pull/51435]) has removed the isInitialRoute parameter from RouteSettings.

Error dump:

Compiler message:
../../../../flutter/.pub-cache/hosted/pub.dartlang.org/neeko-0.0.7/lib/src/neeko_player_widget.dart:196:46: Error: No named parameter with the name 'isInitialRoute'.
settings: RouteSettings(name: "neeko", isInitialRoute: false),
^^^^^^^^^^^^^^
../../../../flutter/packages/flutter/lib/src/widgets/navigator.dart:458:9: Context: Found this candidate, but the arguments don't match.
const RouteSettings({
^^^^^^^^^^^^^

Compiler message:
../../../../flutter/.pub-cache/hosted/pub.dartlang.org/neeko-0.0.7/lib/src/neeko_player_widget.dart:196:46: Error: No named parameter with the name 'isInitialRoute'.
settings: RouteSettings(name: "neeko", isInitialRoute: false),
^^^^^^^^^^^^^^
../../../../flutter/packages/flutter/lib/src/widgets/navigator.dart:458:9: Context: Found this candidate, but the arguments don't match.
const RouteSettings({
^^^^^^^^^^^^^
Target kernel_snapshot failed: Exception: Errors during snapshot creation: null
build failed.

image

Example not working

Hi,

The example is giving me a blank white screen

√ Built build\app\outputs\apk\debug\app-debug.apk.
Installing build\app\outputs\apk\app.apk...                         8.4s
W/Gralloc3(22024): mapper 3.x is not supported                          
I/OpenGLRenderer(22024): Davey! duration=1041ms; Flags=1, IntendedVsync=79475952895189, Vsync=79475952895189, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=79475961771659, AnimationStart=79475961837857, PerformTraversalsStart=79475961840930, DrawStart=79476953837388, SyncQueued=79476954646763, SyncStart=79476954962284, IssueDrawCommandsStart=79476955144367, SwapBuffers=79476993865617, FrameCompleted=79476994898325, DequeueBufferDuration=5330000, QueueBufferDuration=684000,
W/Looper  (22024): Slow Looper main: Long Msg: seq=9 plan=20:20:06.448  late=9ms wall=1034ms running=0ms h=android.view.Choreographer$FrameHandler c=android.view.Choreographer$FrameDisplayEventReceiver
W/example.exampl(22024): Accessing hidden method Landroid/media/AudioTrack;->getLatency()I (greylist, reflection, allowed)
I/ExoPlayerImpl(22024): Init badc2f7 [ExoPlayerLib/2.9.6] [curtana, Redmi Note 9 Pro, Xiaomi, 29]
I/Choreographer(22024): Skipped 64 frames!  The application may be doing too much work on its main thread.
W/Looper  (22024): Slow Looper main: doFrame is 1078ms late because of 2 msg, msg 1 took 1034ms (seq=9 late=9ms h=android.view.Choreographer$FrameHandler c=android.view.Choreographer$FrameDisplayEventReceiver)
I/DpmTcmClient(22024): RegisterTcmMonitor from: $Proxy0
E/AccessibilityBridge(22024): VirtualView node must not be the root node.
D/NetworkSecurityConfig(22024): No Network Security Config specified, using platform default
Syncing files to device Redmi Note 9 Pro...                             
E/ExoPlayerImplInternal(22024): Source error.
E/ExoPlayerImplInternal(22024): com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: Unable to connect to http://vfx.mtime.cn/Video/2019/03/09/mp4/190309153658147087.mp4
E/ExoPlayerImplInternal(22024):         at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:281)
E/ExoPlayerImplInternal(22024):         at com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:83)
E/ExoPlayerImplInternal(22024):         at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:885)
E/ExoPlayerImplInternal(22024):         at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:381)
E/ExoPlayerImplInternal(22024):         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/ExoPlayerImplInternal(22024):         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/ExoPlayerImplInternal(22024):         at java.lang.Thread.run(Thread.java:919)
E/ExoPlayerImplInternal(22024): Caused by: java.io.IOException: Cleartext HTTP traffic to vfx.mtime.cn not permitted
E/ExoPlayerImplInternal(22024):         at com.android.okhttp.HttpHandler$CleartextURLFilter.checkURLPermitted(HttpHandler.java:124)
E/ExoPlayerImplInternal(22024):         at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:462)        
E/ExoPlayerImplInternal(22024):         at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:131)
E/ExoPlayerImplInternal(22024):         at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:528)
E/ExoPlayerImplInternal(22024):         at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:444)
E/ExoPlayerImplInternal(22024):         at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:279)
E/ExoPlayerImplInternal(22024):         ... 6 more
E/flutter (22024): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: PlatformException(VideoError, Video player had error com.google.android.exoplayer2.ExoPlaybackException: com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: Unable to connect to http://vfx.mtime.cn/Video/2019/03/09/mp4/190309153658147087.mp4, null)
E/flutter (22024): #0      VideoControllerWrapper.prepareDataSource (package:neeko/src/video_controller_wrapper.dart:63:5)
E/flutter (22024): <asynchronous suspension>
E/flutter (22024): #1      new VideoControllerWrapper (package:neeko/src/video_controller_wrapper.dart:32:5)
E/flutter (22024): #2      new _MyHomePageState (package:example/main.dart:44:57)
E/flutter (22024): #3      MyHomePage.createState (package:example/main.dart:36:37)
E/flutter (22024): #4      new StatefulElement (package:flutter/src/widgets/framework.dart:4306:25)
E/flutter (22024): #5      StatefulWidget.createElement (package:flutter/src/widgets/framework.dart:809:38)
E/flutter (22024): #6      Element.inflateWidget (package:flutter/src/widgets/framework.dart:3189:40)
E/flutter (22024): #7      Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
E/flutter (22024): #8      SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
E/flutter (22024): #9      Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
E/flutter (22024): #10     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
E/flutter (22024): #11     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
E/flutter (22024): #12     Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
E/flutter (22024): #13     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
E/flutter (22024): #14     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
E/flutter (22024): #15     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
E/flutter (22024): #16     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
E/flutter (22024): #17     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
E/flutter (22024): #18     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
E/flutter (22024): #19     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
E/flutter (22024): #20     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
E/flutter (22024): #21     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
E/flutter (22024): #22     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
E/flutter (22024): #23     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
E/flutter (22024): #24     Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
E/flutter (22024): #25     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
E/flutter (22024): #26     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
E/flutter (22024): #27     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
E/flutter (22024): #28     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
E/flutter (22024): #29     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
E/flutter (22024): #30     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
E/flutter (22024): #31     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
E/flutter (22024): #32     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
E/flutter (22024): #33     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
E/flutter (22024): #34     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
E/flutter (22024): #35     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
E/flutter (22024): #36     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)    
E/flutter (22024): #37     Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
E/flutter (22024): #38     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
E/flutter (22024): #39     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)        
E/flutter (22024): #40     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
E/flutter (22024): #41     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
E/flutter (22024): #42     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
E/flutter (22024): #43     ComponentElement.perfor
I/example.exampl(22024): ProcessProfilingInfo new_methods=1068 is saved saved_to_disk=1 resolve_classes_delay=8000
Syncing files to device Redmi Note 9 Pro...                      7,593ms (!)

�🔥  To hot reload changes while running, press "r". To hot restart (and rebuild state), press "R".
An Observatory debugger and profiler on Redmi Note 9 Pro is available at: http://127.0.0.1:58828/Cxy2vxtGtf8=/
For a more detailed help message, press "h". To detach, press "d"; to quit, press "q".

Auto rotate in full screen

Auto rotate in full screen when device rotate in landscape and minimise in potrait....same as YouTube.

if video not initialize ready to play will have more video controller play much more when we click

if video first time not initialize ready to play video play will

  • count by click other video
  • crash video player
  • can not stop it unless app kill.

by solution i have to share with you with neeko Player

  • Listener video completed initialize make sure the first video done for Video Player can play it.
  • Prevent user click other video before success initialize by show loading dialog on screen.
  • sometime core lib neeko not sure video completed to play because sometime i guest that video show play controller allow user click to play but video not completed init yet. avoid like that please delayed hide loading view for user when notify loadVideoSuccess().
    `
    NeekoPlayerWidget player;
    VideoControllerWrapper videoControllerWrapper;

//Listener func callback
VoidCallback loadVideoSuccess() {
//Delay
Future.delayed(const Duration(milliseconds: 4000), () {
//hide your dialog progress.
});
}
if (videoControllerWrapper == null) {
videoControllerWrapper = VideoControllerWrapper(DataSource.network(
widget.lessonFromList.videoTutorial.toString(),
displayName: widget.lessonFromList.name));
videoControllerWrapper.addListener(loadVideoSuccess);
}
@OverRide
void initState() {
if (videoControllerWrapper == null) {
videoControllerWrapper = VideoControllerWrapper(DataSource.network(
widget.lessonFromList.videoTutorial.toString(),
displayName: widget.lessonFromList.name));
videoControllerWrapper.addListener(loadVideoSuccess);
}
}

@OverRide
Widget build(BuildContext context) {
player = NeekoPlayerWidget(
playerOptions:
NeekoPlayerOptions(preferredOrientationsWhenExitLandscape: [
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown,
], useController: true),
onPortraitBackTap: () {},
videoControllerWrapper: videoControllerWrapper,
);
return Container(
color: AppColor.appBgColor,
child: player);
}
`

inFullScreen paramter in NeekoPlayerWidget is not working

Basically I need to fullscreen the video when the Orientation is landscape.
So I have used OrienationBuilder in my app.

NeekoPlayerWidget(
                                  videoControllerWrapper: playerController,
                                  isPip: isPip || isMediumSize,
                                  inFullScreen:
                                      orientation == Orientation.landscape,
                                )

But the video stays the the same when the orientation changes

Foreground Play

Does it support background playback and foreground control?

local video gives exception

When I use
```
(DataSource.asset(
"pushup1.mp4",
displayName: "displayName"));

it gave the following exception

`E/ExoPlayerImplInternal(  764): Source error.
E/ExoPlayerImplInternal(  764): com.google.android.exoplayer2.upstream.FileDataSource$FileDataSourceException: java.io.FileNotFoundException: pushup1.mp4: open failed: ENOENT (No such file or directory)
E/ExoPlayerImplInternal(  764): 	at com.google.android.exoplayer2.upstream.FileDataSource.open(FileDataSource.java:73)
E/ExoPlayerImplInternal(  764): 	at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:250)
E/ExoPlayerImplInternal(  764): 	at com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:83)
E/ExoPlayerImplInternal(  764): 	at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:885)
E/ExoPlayerImplInternal(  764): 	at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:381)
E/ExoPlayerImplInternal(  764): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
E/ExoPlayerImplInternal(  764): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
E/ExoPlayerImplInternal(  764): 	at java.lang.Thread.run(Thread.java:818)
E/ExoPlayerImplInternal(  764): Caused by: java.io.FileNotFoundException: pushup1.mp4: open failed: ENOENT (No such file or directory)
E/ExoPlayerImplInternal(  764): 	at libcore.io.IoBridge.open(IoBridge.java:487)
E/ExoPlayerImplInternal(  764): 	at java.io.RandomAccessFile.<init>(RandomAccessFile.java:117)
E/ExoPlayerImplInternal(  764): 	at java.io.RandomAccessFile.<init>(RandomAccessFile.java:149)
E/ExoPlayerImplInternal(  764): 	at com.google.android.exoplayer2.upstream.FileDataSource.open(FileDataSource.java:65)
E/ExoPlayerImplInternal(  764): 	... 7 more
E/ExoPlayerImplInternal(  764): Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
E/ExoPlayerImplInternal(  764): 	at libcore.io.Posix.open(Native Method)
E/ExoPlayerImplInternal(  764): 	at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
E/ExoPlayerImplInternal(  764): 	at libcore.io.IoBridge.open(IoBridge.java:473)
E/ExoPlayerImplInternal(  764): 	... 10 more
E/flutter (  764): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: PlatformException(VideoError, Video player had error com.google.android.exoplayer2.ExoPlaybackException: com.google.android.exoplayer2.upstream.FileDataSource$FileDataSourceException: java.io.FileNotFoundException: pushup1.mp4: open failed: ENOENT (No such file or directory), null)
E/flutter (  764): 
`

flutter version is Flutter 1.17.1 stable

Issue when enabling autoplay and live

Hi. i'm experiencing an issue when enabling Autoplay and Live option.
here is the error message.

[38;5;248m════════ Exception caught by widgets library ═══════════════════════════════════[39;49m
[38;5;244mThe following NoSuchMethodError was thrown building Positioned(left: 0.0, right: 0.0, bottom: 0.0):[39;49m
The method 'addListener' was called on null.
Receiver: null
Tried calling: addListener(Closure: () => Null)

[38;5;244mThe relevant error-causing widget was[39;49m
    [38;5;248mNeekoPlayerWidget[39;49m
[38;5;244mWhen the exception was thrown, this was the stack[39;49m
[38;5;244m#0      Object.noSuchMethod  (dart:core-patch/object_patch.dart:53:5)[39;49m
[38;5;248m#1      _LiveBottomBarState._attachListenerToController[39;49m
[38;5;248m#2      _LiveBottomBarState.initState[39;49m
[38;5;244m#3      StatefulElement._firstBuild[39;49m
[38;5;244m#4      ComponentElement.mount[39;49m
[38;5;244m...[39;49m
[38;5;248m════════════════════════════════════════════════════════════════════════════════[39;49m

[38;5;248m════════ Exception caught by widgets library ═══════════════════════════════════[39;49m
The method 'addListener' was called on null.
Receiver: null
Tried calling: addListener(Closure: () => Null)
[38;5;244mThe relevant error-causing widget was[39;49m
    [38;5;248mNeekoPlayerWidget[39;49m
[38;5;248m════════════════════════════════════════════════════════════════════════════════[39;49m

[38;5;248m════════ Exception caught by widgets library ═══════════════════════════════════[39;49m
The method 'addListener' was called on null.
Receiver: null
Tried calling: addListener(Closure: () => Null)
[38;5;244mThe relevant error-causing widget was[39;49m
    [38;5;248mNeekoPlayerWidget[39;49m
[38;5;248m════════════════════════════════════════════════════════════════════════════════[39;49m

[38;5;248m════════ Exception caught by widgets library ═══════════════════════════════════[39;49m
The method 'addListener' was called on null.
Receiver: null
Tried calling: addListener(Closure: () => Null)
[38;5;244mThe relevant error-causing widget was[39;49m
    [38;5;248mNeekoPlayerWidget[39;49m
[38;5;248m════════════════════════════════════════════════════════════════════════════════[39;49m

Here is my code :

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:neeko/neeko.dart';
import 'package:flutter/foundation.dart';

class PlayerPage extends StatefulWidget {
  PlayerPage({Key key, @required this.url, @required this.title})
      : super(key: key);

  final String url;
  final String title;

  @override
  _PlayerPageState createState() => _PlayerPageState();
}

class _PlayerPageState extends State<PlayerPage> {
  VideoControllerWrapper videoControllerWrapper;

  @override
  void initState() {
    super.initState();
    videoControllerWrapper = VideoControllerWrapper(
        DataSource.network(widget.url, displayName: widget.title));
    SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]);
  }

  @override
  void dispose() {
    SystemChrome.restoreSystemUIOverlays();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: NeekoPlayerWidget(
        playerOptions: NeekoPlayerOptions(autoPlay: true, isLive: true),
        videoControllerWrapper: videoControllerWrapper,
      ),
    );
  }
}

The player's works perfectly if i set the autoplay and live to false tho.

Hide back button on player

Hi, anyone else knows how to hide the back button on the player?

The way how I use the plugin was like this

NeekoPlayerWidget( onSkipPrevious: () { print("previous"); _videoControllerWrapper.prepareDataSource(DataSource.network( "https://.......video........mp4")); }, onSkipNext: () { print("next"); _videoControllerWrapper.prepareDataSource(DataSource.network( "https://.......video........mp4")); }, videoControllerWrapper: _videoControllerWrapper, ),

Player doesn't support all online video streaming links

I am streaming some anime content on this player(it is nice by the way), but the player cannot recognize the links in some cases and is unable to play the video. Also when pressing the back button from the fullscreen mode, it would be better if it returns the portrait mode. The player does not show you a circular progress indicator when loading or buffering the video. Finally, is it possible that the loaded video parts stays in memory temporary, only while watching, so that when scrolling the video it does not load all over again. Thank you for this wonderful plugin. Keep going.

save video in storage

is there any way to save video in storage in your source code?
i use your library by adding your source code to my project , i want to know that can i save that downloaded video to my storage and use that ?

Error after going in fullscreen Mode

Hi,
i used this player in my App and if i try to play a video in fullscreen Mode i get this error:

17:38:00.782 195 info flutter.tools The following assertion was thrown building Overlay-[LabeledGlobalKey<OverlayState>#1db36](state:
17:38:00.782 196 info flutter.tools OverlayState#395d0(entries: [OverlayEntry#13bf0(opaque: true; maintainState: false),
17:38:00.782 197 info flutter.tools OverlayEntry#4c28f(opaque: false; maintainState: true), OverlayEntry#2c8b4(opaque: true;
17:38:00.782 198 info flutter.tools maintainState: false), OverlayEntry#65cfa(opaque: false; maintainState: true),
17:38:00.782 199 info flutter.tools OverlayEntry#18b76(opaque: true; maintainState: false), OverlayEntry#9810f(opaque: false;
17:38:00.782 200 info flutter.tools maintainState: true)])):
17:38:00.782 201 info flutter.tools A VideoPlayerController was used after being disposed.
17:38:00.782 202 info flutter.tools Once you have called dispose() on a VideoPlayerController, it can no longer be used.
17:38:00.782 203 info flutter.tools 
17:38:00.782 204 info flutter.tools The relevant error-causing widget was:
17:38:00.782 205 info flutter.tools   MaterialApp file:///D:/Github/App/lib/main.dart:175:16
17:38:00.782 206 info flutter.tools 
17:38:00.782 207 info flutter.tools When the exception was thrown, this was the stack:
17:38:00.782 208 info flutter.tools #0      ChangeNotifier._debugAssertNotDisposed.<anonymous closure> (package:flutter/src/foundation/change_notifier.dart:106:9)
17:38:00.782 209 info flutter.tools #1      ChangeNotifier._debugAssertNotDisposed (package:flutter/src/foundation/change_notifier.dart:112:6)
17:38:00.782 210 info flutter.tools #2      ChangeNotifier.removeListener (package:flutter/src/foundation/change_notifier.dart:167:12)
17:38:00.782 211 info flutter.tools #3      _VideoPlayerState.deactivate (package:video_player/video_player.dart:545:23)
17:38:00.782 212 info flutter.tools #4      StatefulElement.deactivate (package:flutter/src/widgets/framework.dart:4777:12)
17:38:00.782 213 info flutter.tools #5      _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1953:13)
17:38:00.782 214 info flutter.tools #6      ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4611:14)
17:38:00.782 215 info flutter.tools #7      _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
17:38:00.782 216 info flutter.tools #8      MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5984:16)
17:38:00.782 217 info flutter.tools #9      _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
17:38:00.782 218 info flutter.tools #10     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5872:14)
17:38:00.782 219 info flutter.tools #11     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
17:38:00.782 220 info flutter.tools #12     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5872:14)
17:38:00.782 221 info flutter.tools #13     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
17:38:00.782 222 info flutter.tools #14     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4611:14)
17:38:00.782 223 info flutter.tools #15     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
17:38:00.782 224 info flutter.tools #16     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5872:14)
17:38:00.783 225 info flutter.tools #17     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
17:38:00.783 226 info flutter.tools #18     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5872:14)
17:38:00.783 227 info flutter.tools #19     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
17:38:00.783 228 info flutter.tools #20     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5872:14)
17:38:00.783 229 info flutter.tools #21     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
17:38:00.783 230 info flutter.tools #22     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4611:14)
17:38:00.783 231 info flutter.tools #23     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
17:38:00.783 232 info flutter.tools #24     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4611:14)
17:38:00.783 233 info flutter.tools #25     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
17:38:00.783 234 info flutter.tools #26     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4611:14)
17:38:00.783 235 info flutter.tools #27     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
17:38:00.783 236 info flutter.tools #28     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4611:14)
17:38:00.783 237 info flutter.tools #29     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
17:38:00.783 238 info flutter.tools #30     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4611:14)
17:38:00.783 239 info flutter.tools #31     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1955:13)
17:38:00.783 240 info flutter.tools #32     _InactiveElements.add (package:flutter/src/widgets/framework.dart:1967:7)
17:38:00.783 241 info flutter.tools #33     Element.deactivateChild (package:flutter/src/widgets/framework.dart:3537:29)
17:38:00.783 242 info flutter.tools #34     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5670:11)
17:38:00.783 243 info flutter.tools #35     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6012:17)
17:38:00.783 244 info flutter.tools #36     Element.updateChild (package:flutter/src/widgets/framework.dart:3247:15)
17:38:00.783 245 info flutter.tools #37     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4582:16)
17:38:00.783 246 info flutter.tools #38     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4730:11)
17:38:00.783 247 info flutter.tools #39     Element.rebuild (package:flutter/src/widgets/framework.dart:4273:5)
17:38:00.783 248 info flutter.tools #40     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2667:33)
17:38:00.783 249 info flutter.tools #41     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:880:20)
17:38:00.783 250 info flutter.tools #42     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:286:5)
17:38:00.783 251 info flutter.tools #43     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1117:15)
17:38:00.783 252 info flutter.tools #44     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1056:9)
17:38:00.783 253 info flutter.tools #45     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:972:5)
17:38:00.783 254 info flutter.tools #49     _invoke (dart:ui/hooks.dart:253:10)
17:38:00.783 255 info flutter.tools #50     _drawFrame (dart:ui/hooks.dart:211:3)
17:38:00.783 256 info flutter.tools (elided 3 frames from dart:async)

The Widget is in a hierarchy like this:

MaterialApp(
 Scaffold(
 StatefulWidget(
  Container(
   FutureBuilder(
    Column(
      Expanded(
       Container(
        ListView(
         StatefulWidget(
          Container(
           NeekoPlayerWidget())))))))))))

and i dont know whats wrong, if i try it like in the example it works

Headers

is it possible to add headers? There is the extra option but adding the headers there doesn't seem to work

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.