saeedjassani / ShiaCompanion

All the features needed by the lovers of Ahle Bayt (may Allah's peace and blessings be upon them) in one app
MIT License
6 stars 2 forks source link

Live Stream doesn't play on Android #20

Closed saeedjassani closed 3 years ago

saeedjassani commented 3 years ago

Currently flutter_webview_plugin is being used to play m3u8 live streams on iOS. This doesn't work on iOS. Issue raised here https://github.com/fluttercommunity/flutter_webview_plugin/issues/836

Tried using chewie, but it returned the following error:

): Playback error
E/ExoPlayerImplInternal(26047):   com.google.android.exoplayer2.ExoPlaybackException: Source error
E/ExoPlayerImplInternal(26047):       at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:554)
E/ExoPlayerImplInternal(26047):       at android.os.Handler.dispatchMessage(Handler.java:103)
E/ExoPlayerImplInternal(26047):       at android.os.Looper.loop(Looper.java:241)
E/ExoPlayerImplInternal(26047):       at android.os.HandlerThread.run(HandlerThread.java:67)
E/ExoPlayerImplInternal(26047):   Caused by: com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: Unable to connect
E/ExoPlayerImplInternal(26047):       at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:309)
E/ExoPlayerImplInternal(26047):       at com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:84)
E/ExoPlayerImplInternal(26047):       at com.google.android.exoplayer2.upstream.DataSourceInputStream.checkOpened(DataSourceInputStream.java:101)
E/ExoPlayerImplInternal(26047):       at com.google.android.exoplayer2.upstream.DataSourceInputStream.open(DataSourceInputStream.java:64)
E/ExoPlayerImplInternal(26047):       at com.google.android.exoplayer2.upstream.ParsingLoadable.load(ParsingLoadable.java:177)
E/ExoPlayerImplInternal(26047):       at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:415)
E/ExoPlayerImplInternal(26047):       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/ExoPlayerImplInternal(26047):       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/ExoPlayerImplInternal(26047):       at java.lang.Thread.run(Thread.java:919)
E/ExoPlayerImplInternal(26047):   Caused by: java.io.IOException: Cleartext HTTP traffic to cdn.smartstream.video not permitted
E/ExoPlayerImplInternal(26047):       at com.android.okhttp.HttpHandler$CleartextURLFilter.checkURLPermitted(HttpHandler.java:124)
E/ExoPlayerImplInternal(26047):       at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:462)
E/ExoPlayerImplInternal(26047):       at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:131)
E/ExoPlayerImplInternal(26047):       at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:589)
E/ExoPlayerImplInternal(26047):       at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:493)
E/ExoPlayerImplInternal(26047):       at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:307)
E/ExoPlayerImplInternal(26047):       ... 8 more
E/flutter (26047): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: PlatformException(VideoError, 
Video player had error com.google.android.exoplayer2.ExoPlaybackException: Source error, null, null)
saeedjassani commented 3 years ago

https://github.com/flutter/flutter/issues/18328 https://github.com/flutter/plugins/pull/3096

Follow the above links to get a better understanding of video_player

saeedjassani commented 3 years ago

It was "https" issue. Live stream works fine when we use https URL instead of http