Если я помещаю приложение в фоновый режим и возвращаюсь к нему, плеер становится черным в течение 5 секунд, но в течение этого времени воспроизводится звук. Примерно через 5 сек c изображение появляется. Вы знаете, как это можно исправить?
Я использую Videolan / Vl c - android
Вот мой код:
class PlayerActivity : AppCompatActivity() {
private val USE_TEXTURE_VIEW = false
private val ENABLE_SUBTITLES = true
private var mVideoLayout: VLCVideoLayout? = null
private var mLibVLC: LibVLC? = null
private var mMediaPlayer: MediaPlayer? = null
private var streamUrl:String? = null
var isMediaSet = false
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
streamUrl = intent.getStringExtra("STREAM_URL")
setContentView(R.layout.activity_player)
val args = ArrayList<String>()
args.add("-vvv")
args.add(":http-reconnect")
mLibVLC = LibVLC(this, args)
mMediaPlayer = MediaPlayer(mLibVLC)
mVideoLayout = findViewById(R.id.videoView)
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
hideSystemUI()
}
setUpMediaPlayerEvents()
}
override fun onDestroy() {
super.onDestroy()
mMediaPlayer!!.release()
mLibVLC!!.release()
}
override fun onStart() {
super.onStart()
mMediaPlayer!!.attachViews(
mVideoLayout!!,
null,
ENABLE_SUBTITLES,
USE_TEXTURE_VIEW
)
if (!isMediaSet){
isMediaSet = true
val media = Media(
mLibVLC,
Uri.parse(streamUrl)
)
mMediaPlayer!!.media = media
media.release()
}
mMediaPlayer!!.play()
}
override fun onStop() {
super.onStop()
mMediaPlayer!!.pause()
mMediaPlayer!!.detachViews()
}
private fun setUpMediaPlayerEvents(){
mMediaPlayer?.setEventListener(object: MediaPlayer.EventListener{
override fun onEvent(event: MediaPlayer.Event?) {
println("event = ${event.toString()}")
}
})
}
override fun onWindowFocusChanged(hasFocus: Boolean) {
super.onWindowFocusChanged(hasFocus)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
hideSystemUI()
}
}
}
Я использую VLCVideoLayout. Вот как выглядит XML:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".PlayerActivity"
android:fitsSystemWindows="true"
android:background="#000"
>
<org.videolan.libvlc.util.VLCVideoLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/videoView"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
Используемая версия:
implementation 'org.videolan.android:libvlc-all:3.1.12'
Я также пробовал:
implementation group: 'org.videolan.android', name: 'libvlc-all', version: '3.3.0-eap03'