MPVPlayer: Use preferred languages
This commit is contained in:
parent
9cddd50d0e
commit
87edeabb9a
3 changed files with 204 additions and 188 deletions
|
@ -39,7 +39,8 @@ import java.util.concurrent.CopyOnWriteArraySet
|
|||
@Suppress("SpellCheckingInspection")
|
||||
class MPVPlayer(
|
||||
context: Context,
|
||||
requestAudioFocus: Boolean
|
||||
requestAudioFocus: Boolean,
|
||||
preferredLanguages: Map<String, String>
|
||||
) : BasePlayer(), MPVLib.EventObserver, AudioManager.OnAudioFocusChangeListener {
|
||||
|
||||
private val audioManager: AudioManager by lazy { context.getSystemService()!! }
|
||||
|
@ -81,6 +82,17 @@ class MPVPlayer(
|
|||
MPVLib.setOptionString("sub-font-provider", "none")
|
||||
MPVLib.setOptionString("ytdl", "no")
|
||||
|
||||
for (preferredLanguage in preferredLanguages) {
|
||||
when (preferredLanguage.key) {
|
||||
TrackType.AUDIO -> {
|
||||
MPVLib.setOptionString("alang", preferredLanguage.value)
|
||||
}
|
||||
TrackType.SUBTITLE -> {
|
||||
MPVLib.setOptionString("slang", preferredLanguage.value)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MPVLib.addObserver(this)
|
||||
|
||||
// Observe properties
|
||||
|
|
|
@ -51,16 +51,20 @@ constructor(
|
|||
init {
|
||||
val useMpv = sp.getBoolean("mpv_player", false)
|
||||
|
||||
val preferredAudioLanguage = sp.getString("audio_language", null) ?: ""
|
||||
val preferredSubtitleLanguage = sp.getString("subtitle_language", null) ?: ""
|
||||
|
||||
if (useMpv) {
|
||||
player = MPVPlayer(application, false)
|
||||
val preferredLanguages = mapOf(TrackType.AUDIO to preferredAudioLanguage, TrackType.SUBTITLE to preferredSubtitleLanguage)
|
||||
player = MPVPlayer(application, false, preferredLanguages)
|
||||
} else {
|
||||
val renderersFactory =
|
||||
DefaultRenderersFactory(application).setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON)
|
||||
trackSelector.setParameters(
|
||||
trackSelector.buildUponParameters()
|
||||
.setTunnelingEnabled(true)
|
||||
.setPreferredAudioLanguage(sp.getString("audio_language", null))
|
||||
.setPreferredTextLanguage(sp.getString("subtitle_language", null))
|
||||
.setPreferredAudioLanguage(preferredAudioLanguage)
|
||||
.setPreferredTextLanguage(preferredSubtitleLanguage)
|
||||
)
|
||||
player = SimpleExoPlayer.Builder(application, renderersFactory)
|
||||
.setTrackSelector(trackSelector)
|
||||
|
|
|
@ -190,189 +190,189 @@
|
|||
|
||||
<string-array name="languages_values">
|
||||
<item>null</item>
|
||||
<item>ab</item>
|
||||
<item>aa</item>
|
||||
<item>af</item>
|
||||
<item>ak</item>
|
||||
<item>sq</item>
|
||||
<item>am</item>
|
||||
<item>ar</item>
|
||||
<item>an</item>
|
||||
<item>hy</item>
|
||||
<item>as</item>
|
||||
<item>av</item>
|
||||
<item>ae</item>
|
||||
<item>ay</item>
|
||||
<item>az</item>
|
||||
<item>bm</item>
|
||||
<item>ba</item>
|
||||
<item>eu</item>
|
||||
<item>be</item>
|
||||
<item>bn</item>
|
||||
<item>bh</item>
|
||||
<item>bi</item>
|
||||
<item>nb</item>
|
||||
<item>bs</item>
|
||||
<item>br</item>
|
||||
<item>bg</item>
|
||||
<item>my</item>
|
||||
<item>ca</item>
|
||||
<item>km</item>
|
||||
<item>ch</item>
|
||||
<item>ce</item>
|
||||
<item>ny</item>
|
||||
<item>zh</item>
|
||||
<item>cu</item>
|
||||
<item>cv</item>
|
||||
<item>kw</item>
|
||||
<item>co</item>
|
||||
<item>cr</item>
|
||||
<item>hr</item>
|
||||
<item>cs</item>
|
||||
<item>da</item>
|
||||
<item>dv</item>
|
||||
<item>nl</item>
|
||||
<item>dz</item>
|
||||
<item>en</item>
|
||||
<item>eo</item>
|
||||
<item>et</item>
|
||||
<item>ee</item>
|
||||
<item>fo</item>
|
||||
<item>fj</item>
|
||||
<item>fi</item>
|
||||
<item>fr</item>
|
||||
<item>ff</item>
|
||||
<item>gd</item>
|
||||
<item>gl</item>
|
||||
<item>lg</item>
|
||||
<item>ka</item>
|
||||
<item>de</item>
|
||||
<item>el</item>
|
||||
<item>gn</item>
|
||||
<item>gu</item>
|
||||
<item>ht</item>
|
||||
<item>ha</item>
|
||||
<item>he</item>
|
||||
<item>hz</item>
|
||||
<item>hi</item>
|
||||
<item>ho</item>
|
||||
<item>hu</item>
|
||||
<item>is</item>
|
||||
<item>io</item>
|
||||
<item>ig</item>
|
||||
<item>id</item>
|
||||
<item>ia</item>
|
||||
<item>ie</item>
|
||||
<item>iu</item>
|
||||
<item>ik</item>
|
||||
<item>ga</item>
|
||||
<item>it</item>
|
||||
<item>ja</item>
|
||||
<item>jv</item>
|
||||
<item>kl</item>
|
||||
<item>kn</item>
|
||||
<item>kr</item>
|
||||
<item>ks</item>
|
||||
<item>kk</item>
|
||||
<item>ki</item>
|
||||
<item>rw</item>
|
||||
<item>ky</item>
|
||||
<item>kv</item>
|
||||
<item>kg</item>
|
||||
<item>ko</item>
|
||||
<item>kj</item>
|
||||
<item>ku</item>
|
||||
<item>lo</item>
|
||||
<item>la</item>
|
||||
<item>lv</item>
|
||||
<item>li</item>
|
||||
<item>ln</item>
|
||||
<item>lt</item>
|
||||
<item>lu</item>
|
||||
<item>lb</item>
|
||||
<item>mk</item>
|
||||
<item>mg</item>
|
||||
<item>ms</item>
|
||||
<item>ml</item>
|
||||
<item>mt</item>
|
||||
<item>gv</item>
|
||||
<item>mi</item>
|
||||
<item>mr</item>
|
||||
<item>mh</item>
|
||||
<item>mn</item>
|
||||
<item>na</item>
|
||||
<item>nv</item>
|
||||
<item>nd</item>
|
||||
<item>nr</item>
|
||||
<item>ng</item>
|
||||
<item>ne</item>
|
||||
<item>se</item>
|
||||
<item>no</item>
|
||||
<item>nn</item>
|
||||
<item>oc</item>
|
||||
<item>oj</item>
|
||||
<item>or</item>
|
||||
<item>om</item>
|
||||
<item>os</item>
|
||||
<item>pi</item>
|
||||
<item>pa</item>
|
||||
<item>fa</item>
|
||||
<item>pl</item>
|
||||
<item>pt</item>
|
||||
<item>ps</item>
|
||||
<item>qu</item>
|
||||
<item>ro</item>
|
||||
<item>rm</item>
|
||||
<item>rn</item>
|
||||
<item>ru</item>
|
||||
<item>sm</item>
|
||||
<item>sg</item>
|
||||
<item>sa</item>
|
||||
<item>sc</item>
|
||||
<item>sr</item>
|
||||
<item>sn</item>
|
||||
<item>ii</item>
|
||||
<item>sd</item>
|
||||
<item>si</item>
|
||||
<item>sk</item>
|
||||
<item>sl</item>
|
||||
<item>so</item>
|
||||
<item>st</item>
|
||||
<item>es</item>
|
||||
<item>su</item>
|
||||
<item>sw</item>
|
||||
<item>ss</item>
|
||||
<item>sv</item>
|
||||
<item>tl</item>
|
||||
<item>ty</item>
|
||||
<item>tg</item>
|
||||
<item>ta</item>
|
||||
<item>tt</item>
|
||||
<item>te</item>
|
||||
<item>th</item>
|
||||
<item>bo</item>
|
||||
<item>ti</item>
|
||||
<item>to</item>
|
||||
<item>ts</item>
|
||||
<item>tn</item>
|
||||
<item>tr</item>
|
||||
<item>tk</item>
|
||||
<item>tw</item>
|
||||
<item>ug</item>
|
||||
<item>uk</item>
|
||||
<item>ur</item>
|
||||
<item>uz</item>
|
||||
<item>ve</item>
|
||||
<item>vi</item>
|
||||
<item>vo</item>
|
||||
<item>wa</item>
|
||||
<item>cy</item>
|
||||
<item>fy</item>
|
||||
<item>wo</item>
|
||||
<item>xh</item>
|
||||
<item>yi</item>
|
||||
<item>yo</item>
|
||||
<item>za</item>
|
||||
<item>zu</item>
|
||||
<item>abk</item>
|
||||
<item>aar</item>
|
||||
<item>afr</item>
|
||||
<item>aka</item>
|
||||
<item>sqi</item>
|
||||
<item>amh</item>
|
||||
<item>ara</item>
|
||||
<item>arg</item>
|
||||
<item>hye</item>
|
||||
<item>asm</item>
|
||||
<item>ava</item>
|
||||
<item>ave</item>
|
||||
<item>aym</item>
|
||||
<item>aze</item>
|
||||
<item>bam</item>
|
||||
<item>bak</item>
|
||||
<item>eus</item>
|
||||
<item>bel</item>
|
||||
<item>ben</item>
|
||||
<item>bih</item>
|
||||
<item>bis</item>
|
||||
<item>nob</item>
|
||||
<item>bos</item>
|
||||
<item>bre</item>
|
||||
<item>bul</item>
|
||||
<item>bur</item>
|
||||
<item>cat</item>
|
||||
<item>khm</item>
|
||||
<item>cha</item>
|
||||
<item>che</item>
|
||||
<item>nya</item>
|
||||
<item>chi</item>
|
||||
<item>chu</item>
|
||||
<item>chv</item>
|
||||
<item>cor</item>
|
||||
<item>cos</item>
|
||||
<item>cre</item>
|
||||
<item>hrv</item>
|
||||
<item>cze</item>
|
||||
<item>dan</item>
|
||||
<item>div</item>
|
||||
<item>dut</item>
|
||||
<item>dzo</item>
|
||||
<item>eng</item>
|
||||
<item>epo</item>
|
||||
<item>est</item>
|
||||
<item>ewe</item>
|
||||
<item>fao</item>
|
||||
<item>fij</item>
|
||||
<item>fin</item>
|
||||
<item>fre</item>
|
||||
<item>ful</item>
|
||||
<item>gla</item>
|
||||
<item>glg</item>
|
||||
<item>lug</item>
|
||||
<item>geo</item>
|
||||
<item>ger</item>
|
||||
<item>gre</item>
|
||||
<item>grn</item>
|
||||
<item>guj</item>
|
||||
<item>hat</item>
|
||||
<item>hau</item>
|
||||
<item>heb</item>
|
||||
<item>her</item>
|
||||
<item>hin</item>
|
||||
<item>hmo</item>
|
||||
<item>hun</item>
|
||||
<item>ice</item>
|
||||
<item>ido</item>
|
||||
<item>ibo</item>
|
||||
<item>ind</item>
|
||||
<item>ina</item>
|
||||
<item>ile</item>
|
||||
<item>iku</item>
|
||||
<item>ipk</item>
|
||||
<item>gle</item>
|
||||
<item>ita</item>
|
||||
<item>jpn</item>
|
||||
<item>jav</item>
|
||||
<item>kal</item>
|
||||
<item>kan</item>
|
||||
<item>kau</item>
|
||||
<item>kas</item>
|
||||
<item>kaz</item>
|
||||
<item>kik</item>
|
||||
<item>kin</item>
|
||||
<item>kir</item>
|
||||
<item>kom</item>
|
||||
<item>kon</item>
|
||||
<item>kor</item>
|
||||
<item>kua</item>
|
||||
<item>kur</item>
|
||||
<item>lao</item>
|
||||
<item>lat</item>
|
||||
<item>lav</item>
|
||||
<item>lim</item>
|
||||
<item>lin</item>
|
||||
<item>lit</item>
|
||||
<item>lub</item>
|
||||
<item>ltz</item>
|
||||
<item>mac</item>
|
||||
<item>mlg</item>
|
||||
<item>may</item>
|
||||
<item>mal</item>
|
||||
<item>mlt</item>
|
||||
<item>glv</item>
|
||||
<item>mao</item>
|
||||
<item>mar</item>
|
||||
<item>mah</item>
|
||||
<item>mon</item>
|
||||
<item>nau</item>
|
||||
<item>nav</item>
|
||||
<item>nde</item>
|
||||
<item>nbl</item>
|
||||
<item>ndo</item>
|
||||
<item>nep</item>
|
||||
<item>sme</item>
|
||||
<item>nor</item>
|
||||
<item>nno</item>
|
||||
<item>oci</item>
|
||||
<item>oji</item>
|
||||
<item>ori</item>
|
||||
<item>orm</item>
|
||||
<item>oss</item>
|
||||
<item>pli</item>
|
||||
<item>pan</item>
|
||||
<item>per</item>
|
||||
<item>pol</item>
|
||||
<item>por</item>
|
||||
<item>pus</item>
|
||||
<item>que</item>
|
||||
<item>rum</item>
|
||||
<item>roh</item>
|
||||
<item>run</item>
|
||||
<item>rus</item>
|
||||
<item>smo</item>
|
||||
<item>sag</item>
|
||||
<item>san</item>
|
||||
<item>srd</item>
|
||||
<item>srp</item>
|
||||
<item>sna</item>
|
||||
<item>iii</item>
|
||||
<item>snd</item>
|
||||
<item>sin</item>
|
||||
<item>slo</item>
|
||||
<item>slv</item>
|
||||
<item>som</item>
|
||||
<item>sot</item>
|
||||
<item>spa</item>
|
||||
<item>sun</item>
|
||||
<item>swa</item>
|
||||
<item>ssw</item>
|
||||
<item>swe</item>
|
||||
<item>tgl</item>
|
||||
<item>tah</item>
|
||||
<item>tgk</item>
|
||||
<item>tam</item>
|
||||
<item>tat</item>
|
||||
<item>tel</item>
|
||||
<item>tha</item>
|
||||
<item>tib</item>
|
||||
<item>tir</item>
|
||||
<item>ton</item>
|
||||
<item>tso</item>
|
||||
<item>tsn</item>
|
||||
<item>tur</item>
|
||||
<item>tuk</item>
|
||||
<item>twi</item>
|
||||
<item>uig</item>
|
||||
<item>ukr</item>
|
||||
<item>urd</item>
|
||||
<item>uzb</item>
|
||||
<item>ven</item>
|
||||
<item>vie</item>
|
||||
<item>vol</item>
|
||||
<item>wln</item>
|
||||
<item>wel</item>
|
||||
<item>fry</item>
|
||||
<item>wol</item>
|
||||
<item>xho</item>
|
||||
<item>yid</item>
|
||||
<item>yor</item>
|
||||
<item>zha</item>
|
||||
<item>zul</item>
|
||||
</string-array>
|
||||
</resources>
|
Loading…
Reference in a new issue