mirror of
				https://github.com/recloudstream/cloudstream.git
				synced 2024-08-15 01:53:11 +00:00 
			
		
		
		
	Allow playback from buffer with no internet
This commit is contained in:
		
							parent
							
								
									544f277d0c
								
							
						
					
					
						commit
						7f71eef755
					
				
					 1 changed files with 11 additions and 5 deletions
				
			
		|  | @ -17,10 +17,7 @@ import com.google.android.exoplayer2.text.TextRenderer | |||
| import com.google.android.exoplayer2.trackselection.DefaultTrackSelector | ||||
| import com.google.android.exoplayer2.trackselection.TrackSelector | ||||
| import com.google.android.exoplayer2.ui.SubtitleView | ||||
| import com.google.android.exoplayer2.upstream.DataSource | ||||
| import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory | ||||
| import com.google.android.exoplayer2.upstream.DefaultHttpDataSource | ||||
| import com.google.android.exoplayer2.upstream.HttpDataSource | ||||
| import com.google.android.exoplayer2.upstream.* | ||||
| import com.google.android.exoplayer2.upstream.cache.CacheDataSource | ||||
| import com.google.android.exoplayer2.upstream.cache.LeastRecentlyUsedCacheEvictor | ||||
| import com.google.android.exoplayer2.upstream.cache.SimpleCache | ||||
|  | @ -880,7 +877,16 @@ class CS3IPlayer : IPlayer { | |||
|                 } | ||||
| 
 | ||||
|                 override fun onPlayerError(error: PlaybackException) { | ||||
|                     playerError?.invoke(error) | ||||
|                     // If the Network fails then ignore the exception if the duration is set. | ||||
|                     // This is to switch mirrors automatically if the stream has not been fetched, but | ||||
|                     // allow playing the buffer without internet as then the duration is fetched. | ||||
|                     if (error.errorCode == PlaybackException.ERROR_CODE_IO_NETWORK_CONNECTION_FAILED | ||||
|                         && exoPlayer?.duration != C.TIME_UNSET | ||||
|                     ) { | ||||
|                         exoPlayer?.prepare() | ||||
|                     } else { | ||||
|                         playerError?.invoke(error) | ||||
|                     } | ||||
| 
 | ||||
|                     super.onPlayerError(error) | ||||
|                 } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue