Merge branch 'dev' of https://github.com/tapframe/NuvioTV into dev
This commit is contained in:
commit
d1bc1bfbf7
1 changed files with 14 additions and 5 deletions
|
|
@ -2,7 +2,7 @@ package com.nuvio.tv.ui.screens.player
|
|||
|
||||
import androidx.media3.common.MediaItem
|
||||
import androidx.media3.common.MimeTypes
|
||||
import androidx.media3.datasource.DefaultHttpDataSource
|
||||
import androidx.media3.datasource.okhttp.OkHttpDataSource
|
||||
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory
|
||||
import androidx.media3.exoplayer.source.MediaSource
|
||||
import androidx.media3.exoplayer.dash.DashMediaSource
|
||||
|
|
@ -10,17 +10,29 @@ import androidx.media3.exoplayer.hls.HlsMediaSource
|
|||
import androidx.media3.extractor.DefaultExtractorsFactory
|
||||
import androidx.media3.extractor.ExtractorsFactory
|
||||
import androidx.media3.extractor.text.SubtitleParser
|
||||
import com.nuvio.tv.core.network.IPv4FirstDns
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
import okhttp3.OkHttpClient
|
||||
import java.io.InputStream
|
||||
import java.net.HttpURLConnection
|
||||
import java.net.URL
|
||||
import java.net.URLDecoder
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
internal class PlayerMediaSourceFactory {
|
||||
private var customExtractorsFactory: ExtractorsFactory? = null
|
||||
private var customSubtitleParserFactory: SubtitleParser.Factory? = null
|
||||
private val playbackHttpClient by lazy {
|
||||
OkHttpClient.Builder()
|
||||
.dns(IPv4FirstDns())
|
||||
.connectTimeout(8, TimeUnit.SECONDS)
|
||||
.readTimeout(8, TimeUnit.SECONDS)
|
||||
.followRedirects(true)
|
||||
.followSslRedirects(true)
|
||||
.build()
|
||||
}
|
||||
|
||||
fun configureSubtitleParsing(
|
||||
extractorsFactory: ExtractorsFactory?,
|
||||
|
|
@ -37,10 +49,7 @@ internal class PlayerMediaSourceFactory {
|
|||
mimeTypeOverride: String? = null
|
||||
): MediaSource {
|
||||
val sanitizedHeaders = sanitizeHeaders(headers)
|
||||
val httpDataSourceFactory = DefaultHttpDataSource.Factory().apply {
|
||||
setConnectTimeoutMs(8000)
|
||||
setReadTimeoutMs(8000)
|
||||
setAllowCrossProtocolRedirects(true)
|
||||
val httpDataSourceFactory = OkHttpDataSource.Factory(playbackHttpClient).apply {
|
||||
setDefaultRequestProperties(sanitizedHeaders)
|
||||
setUserAgent(DEFAULT_USER_AGENT)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue