jhomlala / betterplayer

Better video player for Flutter, with multiple configuration options. Solving typical use cases!
Apache License 2.0
895 stars 938 forks source link

[BUG] #1247

Open ragupathij46 opened 10 months ago

ragupathij46 commented 10 months ago

I downloaded m3u8 format video, after I play that video using Better Player, I got this error.

---------my code is----------- _controller=BetterPlayerController( BetterPlayerConfiguration( autoPlay: true, autoDispose: true, fit: BoxFit.fitHeight, controlsConfiguration: BetterPlayerControlsConfiguration( controlBarColor: Colors.transparent, ) ), betterPlayerDataSource:BetterPlayerDataSource(BetterPlayerDataSourceType.file, '${Local Path}',) );

----error message-------

E/ExoPlayerImplInternal(27792): Playback error E/ExoPlayerImplInternal(27792): com.google.android.exoplayer2.ExoPlaybackException: Source error E/ExoPlayerImplInternal(27792): at com.google.android.exoplayer2.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:641) E/ExoPlayerImplInternal(27792): at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:613) E/ExoPlayerImplInternal(27792): at android.os.Handler.dispatchMessage(Handler.java:102) E/ExoPlayerImplInternal(27792): at android.os.Looper.loopOnce(Looper.java:233) E/ExoPlayerImplInternal(27792): at android.os.Looper.loop(Looper.java:344) E/ExoPlayerImplInternal(27792): at android.os.HandlerThread.run(HandlerThread.java:67) E/ExoPlayerImplInternal(27792): Caused by: com.google.android.exoplayer2.upstream.FileDataSource$FileDataSourceException: java.io.FileNotFoundException: /data/user/0/co.kssmart.gcplms/app_flutter/ehjkuGlkjFRFCw7EN7qivff1ZbS2/^&Wellbeing^&Gender & Diversity^&Module/360_out.m3u8: open failed: ENOENT (No such file or directory) E/ExoPlayerImplInternal(27792): at com.google.android.exoplayer2.upstream.FileDataSource.openLocalFile(FileDataSource.java:197) E/ExoPlayerImplInternal(27792): at com.google.android.exoplayer2.upstream.FileDataSource.open(FileDataSource.java:108) E/ExoPlayerImplInternal(27792): at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:258) E/ExoPlayerImplInternal(27792): at com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:84) E/ExoPlayerImplInternal(27792): at com.google.android.exoplayer2.upstream.DataSourceInputStream.checkOpened(DataSourceInputStream.java:99) E/ExoPlayerImplInternal(27792): at com.google.android.exoplayer2.upstream.DataSourceInputStream.open(DataSourceInputStream.java:62) E/ExoPlayerImplInternal(27792): at com.google.android.exoplayer2.upstream.ParsingLoadable.load(ParsingLoadable.java:174) E/ExoPlayerImplInternal(27792): at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:412) E/ExoPlayerImplInternal(27792): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137) E/ExoPlayerImplInternal(27792): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637) E/ExoPlayerImplInternal(27792): at java.lang.Thread.run(Thread.java:1012) E/ExoPlayerImplInternal(27792): Caused by: java.io.FileNotFoundException: /data/user/0/co.kssmart.gcplms/app_flutter/ehjkuGlkjFRFCw7EN7qivff1ZbS2/^&Wellbeing^&Gender & Diversity^&Module/360_out.m3u8: open failed: ENOENT (No such file or directory) E/ExoPlayerImplInternal(27792): at libcore.io.IoBridge.open(IoBridge.java:574) E/ExoPlayerImplInternal(27792): at java.io.RandomAccessFile.(RandomAccessFile.java:289) E/ExoPlayerImplInternal(27792): at java.io.RandomAccessFile.(RandomAccessFile.java:152) E/ExoPlayerImplInternal(27792): at com.google.android.exoplayer2.upstream.FileDataSource.openLocalFile(FileDataSource.java:178) E/ExoPlayerImplInternal(27792): ... 10 more E/ExoPlayerImplInternal(27792): Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory) E/ExoPlayerImplInternal(27792): at libcore.io.Linux.open(Native Method) E/ExoPlayerImplInternal(27792): at libcore.io.ForwardingOs.open(ForwardingOs.java:563) E/ExoPlayerImplInternal(27792): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:274) E/ExoPlayerImplInternal(27792): at libcore.io.ForwardingOs.open(ForwardingOs.java:563) E/ExoPlayerImplInternal(27792): at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:8129) E/ExoPlayerImplInternal(27792): at libcore.io.IoBridge.open(IoBridge.java:560) E/ExoPlayerImplInternal(27792): ... 13 more E/flutter (27792): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(VideoError, Video player had error com.google.android.exoplayer2.ExoPlaybackException: Source error, , null)

Better Player version

KyawSoeW1n commented 10 months ago

Please use videoFormat: BetterPlayerVideoFormat.hls in BetterPlayerDataSource

ragupathij46 commented 10 months ago

again i'm getting same error

---------code-------------

_controller=BetterPlayerController( BetterPlayerConfiguration( autoPlay: true, autoDispose: true, fit: BoxFit.fitHeight, controlsConfiguration: BetterPlayerControlsConfiguration( controlBarColor: Colors.transparent, ) ), betterPlayerDataSource:BetterPlayerDataSource(BetterPlayerDataSourceType.file, '${current!.path}',videoFormat: BetterPlayerVideoFormat.hls) );

--------- error------------- E/ExoPlayerImplInternal(25217): Playback error E/ExoPlayerImplInternal(25217): com.google.android.exoplayer2.ExoPlaybackException: Source error E/ExoPlayerImplInternal(25217): at com.google.android.exoplayer2.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:641) E/ExoPlayerImplInternal(25217): at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:613) E/ExoPlayerImplInternal(25217): at android.os.Handler.dispatchMessage(Handler.java:102) E/ExoPlayerImplInternal(25217): at android.os.Looper.loopOnce(Looper.java:233) E/ExoPlayerImplInternal(25217): at android.os.Looper.loop(Looper.java:344) E/ExoPlayerImplInternal(25217): at android.os.HandlerThread.run(HandlerThread.java:67) E/ExoPlayerImplInternal(25217): Caused by: com.google.android.exoplayer2.upstream.FileDataSource$FileDataSourceException: java.io.FileNotFoundException: /data/user/0/co.kssmart.gcplms/app_flutter/ehjkuGlkjFRFCw7EN7qivff1ZbS2/^&Wellbeing^&Gender & Diversity^&Module/360_out.m3u8: open failed: ENOENT (No such file or directory) E/ExoPlayerImplInternal(25217): at com.google.android.exoplayer2.upstream.FileDataSource.openLocalFile(FileDataSource.java:197) E/ExoPlayerImplInternal(25217): at com.google.android.exoplayer2.upstream.FileDataSource.open(FileDataSource.java:108) E/ExoPlayerImplInternal(25217): at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:258) E/ExoPlayerImplInternal(25217): at com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:84) E/ExoPlayerImplInternal(25217): at com.google.android.exoplayer2.upstream.DataSourceInputStream.checkOpened(DataSourceInputStream.java:99) E/ExoPlayerImplInternal(25217): at com.google.android.exoplayer2.upstream.DataSourceInputStream.open(DataSourceInputStream.java:62) E/ExoPlayerImplInternal(25217): at com.google.android.exoplayer2.upstream.ParsingLoadable.load(ParsingLoadable.java:174) E/ExoPlayerImplInternal(25217): at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:412) E/ExoPlayerImplInternal(25217): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137) E/ExoPlayerImplInternal(25217): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637) E/ExoPlayerImplInternal(25217): at java.lang.Thread.run(Thread.java:1012) E/ExoPlayerImplInternal(25217): Caused by: java.io.FileNotFoundException: /data/user/0/co.kssmart.gcplms/app_flutter/ehjkuGlkjFRFCw7EN7qivff1ZbS2/^&Wellbeing^&Gender & Diversity^&Module/360_out.m3u8: open failed: ENOENT (No such file or directory) E/ExoPlayerImplInternal(25217): at libcore.io.IoBridge.open(IoBridge.java:574) E/ExoPlayerImplInternal(25217): at java.io.RandomAccessFile.(RandomAccessFile.java:289) E/ExoPlayerImplInternal(25217): at java.io.RandomAccessFile.(RandomAccessFile.java:152) E/ExoPlayerImplInternal(25217): at com.google.android.exoplayer2.upstream.FileDataSource.openLocalFile(FileDataSource.java:178) E/ExoPlayerImplInternal(25217): ... 10 more E/ExoPlayerImplInternal(25217): Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory) E/ExoPlayerImplInternal(25217): at libcore.io.Linux.open(Native Method) E/ExoPlayerImplInternal(25217): at libcore.io.ForwardingOs.open(ForwardingOs.java:563) E/ExoPlayerImplInternal(25217): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:274) E/ExoPlayerImplInternal(25217): at libcore.io.ForwardingOs.open(ForwardingOs.java:563) E/ExoPlayerImplInternal(25217): at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:8129) E/ExoPlayerImplInternal(25217): at libcore.io.IoBridge.open(IoBridge.java:560) E/ExoPlayerImplInternal(25217): ... 13 more E/flutter (25217): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(VideoError, Video player had error com.google.android.exoplayer2.ExoPlaybackException: Source error, , null)

KyawSoeW1n commented 10 months ago

Can you check file is valid ?

I saw you got file not found exception Caused by: java.io.FileNotFoundException: /data/user/0/co.kssmart.gcplms/app_flutter/ehjkuGlkjFRFCw7EN7qivff1ZbS2/^&Wellbeing^&Gender & Diversity^&*Module/360_out.m3u8: open failed: ENOENT (No such file or directory)

Please check file is exist or not.

ragupathij46 commented 10 months ago

above issue fixed, but now i'm getting new error

------------------------error message------------------------------

E/ExoPlayerImplInternal( 4687): Playback error E/ExoPlayerImplInternal( 4687): com.google.android.exoplayer2.ExoPlaybackException: Source error E/ExoPlayerImplInternal( 4687): at com.google.android.exoplayer2.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:641) E/ExoPlayerImplInternal( 4687): at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:611) E/ExoPlayerImplInternal( 4687): at android.os.Handler.dispatchMessage(Handler.java:102) E/ExoPlayerImplInternal( 4687): at android.os.Looper.loopOnce(Looper.java:233) E/ExoPlayerImplInternal( 4687): at android.os.Looper.loop(Looper.java:344) E/ExoPlayerImplInternal( 4687): at android.os.HandlerThread.run(HandlerThread.java:67) E/ExoPlayerImplInternal( 4687): Caused by: com.google.android.exoplayer2.source.UnrecognizedInputFormatException: None of the available extractors (FlvExtractor, FlacExtractor, WavExtractor, FragmentedMp4Extractor, Mp4Extractor, AmrExtractor, PsExtractor, OggExtractor, TsExtractor, MatroskaExtractor, AdtsExtractor, Ac3Extractor, Ac4Extractor, Mp3Extractor, JpegExtractor) could read the stream. E/ExoPlayerImplInternal( 4687): at com.google.android.exoplayer2.source.BundledExtractorsAdapter.init(BundledExtractorsAdapter.java:92) E/ExoPlayerImplInternal( 4687): at com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1020) E/ExoPlayerImplInternal( 4687): at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:412) E/ExoPlayerImplInternal( 4687): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137) E/ExoPlayerImplInternal( 4687): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637) E/ExoPlayerImplInternal( 4687): at java.lang.Thread.run(Thread.java:1012) E/flutter ( 4687): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(VideoError, Video player had error com.google.android.exoplayer2.ExoPlaybackException: Source error, , null)

KyawSoeW1n commented 10 months ago

For me , i just need to add BetterPlayerVideoFormat.hls in BetterPlayerDataSource

Please trace your problem.

ragupathij46 commented 10 months ago

I already added this line, but its not working for me 🙁

ragupathij46 commented 10 months ago

_controller=BetterPlayerController( BetterPlayerConfiguration( autoPlay: true, autoDispose: true, fit: BoxFit.fitHeight, controlsConfiguration: BetterPlayerControlsConfiguration( controlBarColor: Colors.transparent, ) ), betterPlayerDataSource:BetterPlayerDataSource(BetterPlayerDataSourceType.file, '${current!.path}',videoFormat: BetterPlayerVideoFormat.hls) );