diff --git a/app/src/main/java/org/linphone/ui/fileviewer/fragment/MediaViewerFragment.kt b/app/src/main/java/org/linphone/ui/fileviewer/fragment/MediaViewerFragment.kt index 9dcc8ba3f..d3e8b3dd4 100644 --- a/app/src/main/java/org/linphone/ui/fileviewer/fragment/MediaViewerFragment.kt +++ b/app/src/main/java/org/linphone/ui/fileviewer/fragment/MediaViewerFragment.kt @@ -109,7 +109,7 @@ class MediaViewerFragment : GenericMainFragment() { val textureView = binding.videoPlayer if (textureView.isAvailable) { Log.i("$TAG Surface created, setting display in mediaPlayer") - viewModel.mediaPlayer.setSurface((Surface(textureView.surfaceTexture))) + viewModel.setMediaPlayerSurface((Surface(textureView.surfaceTexture))) } else { Log.i("$TAG Surface not available yet, setting listener") textureView.surfaceTextureListener = object : SurfaceTextureListener { @@ -119,7 +119,7 @@ class MediaViewerFragment : GenericMainFragment() { p2: Int ) { Log.i("$TAG Surface available, setting display in mediaPlayer") - viewModel.mediaPlayer.setSurface(Surface(surfaceTexture)) + viewModel.setMediaPlayerSurface(Surface(surfaceTexture)) } override fun onSurfaceTextureSizeChanged( diff --git a/app/src/main/java/org/linphone/ui/fileviewer/viewmodel/MediaViewModel.kt b/app/src/main/java/org/linphone/ui/fileviewer/viewmodel/MediaViewModel.kt index eecc3ffe0..39f524b9d 100644 --- a/app/src/main/java/org/linphone/ui/fileviewer/viewmodel/MediaViewModel.kt +++ b/app/src/main/java/org/linphone/ui/fileviewer/viewmodel/MediaViewModel.kt @@ -21,6 +21,7 @@ package org.linphone.ui.fileviewer.viewmodel import android.media.AudioAttributes import android.media.MediaPlayer +import android.view.Surface import androidx.annotation.UiThread import androidx.lifecycle.MutableLiveData import androidx.lifecycle.viewModelScope @@ -225,4 +226,11 @@ class MediaViewModel updatePositionJob?.cancel() updatePositionJob = null } + + @UiThread + fun setMediaPlayerSurface(surface: Surface) { + if (::mediaPlayer.isInitialized) { + mediaPlayer.setSurface(surface) + } + } }