diff --git a/app/src/main/java/com/ray650128/gstreamer_demo_app/ui/mainScreen/VideoView.kt b/app/src/main/java/com/ray650128/gstreamer_demo_app/ui/mainScreen/VideoView.kt index fdf68d8..733ca42 100644 --- a/app/src/main/java/com/ray650128/gstreamer_demo_app/ui/mainScreen/VideoView.kt +++ b/app/src/main/java/com/ray650128/gstreamer_demo_app/ui/mainScreen/VideoView.kt @@ -51,7 +51,7 @@ class VideoView : ConstraintLayout, SurfaceHolder.Callback, GstCallback { private var retryRunnable = object : Runnable { override fun run() { play() - Log.e("${TAG}_$tag", "Retry count: $retryCount") + //Log.e("${TAG}_$tag", "Retry count: $retryCount") } } @@ -73,12 +73,17 @@ class VideoView : ConstraintLayout, SurfaceHolder.Callback, GstCallback { videoView.holder.addCallback(this) gstLibrary = GstLibrary(context) gstLibrary.setOnStatusChangeListener(this) + + view.textDeviceName.isVisible = false + isPlaying = false + isLoading = false } fun setData(device: Device?) { if (device == null) { view.textDeviceName.isVisible = false isPlaying = false + isLoading = false return } this.data = device @@ -111,6 +116,9 @@ class VideoView : ConstraintLayout, SurfaceHolder.Callback, GstCallback { override fun surfaceCreated(holder: SurfaceHolder) { Log.d("${TAG}_$tag", "Surface created: " + holder.surface) + if (this::gstLibrary.isInitialized) { + gstLibrary.setSurfaceHolder(holder) + } } override fun surfaceChanged(holder: SurfaceHolder, format: Int, width: Int, height: Int) { @@ -123,9 +131,9 @@ class VideoView : ConstraintLayout, SurfaceHolder.Callback, GstCallback { override fun surfaceDestroyed(p0: SurfaceHolder) { Log.d("${TAG}_$tag", "Surface destroyed") // TODO: 如果呼叫 releaseSurface(),會閃退 - /*if (this::gstLibrary.isInitialized) { + if (this::gstLibrary.isInitialized) { gstLibrary.releaseSurface() - }*/ + } } override fun onStatus(gstStatus: GstStatus?) { // onStatus 不是在主執行緒,因此透過 Handler 發訊息到主執行緒去執行 @@ -137,11 +145,11 @@ class VideoView : ConstraintLayout, SurfaceHolder.Callback, GstCallback { GstStatus.ERROR_WHEN_OPENING -> mHandler.sendMessage(Message().apply { what = MSG_ERROR }) else -> {} } - Log.e("${TAG}_$tag", "onStatus: $gstStatus") + //Log.e("${TAG}_$tag", "onStatus: $gstStatus") } override fun onMessage(message: String?) { - Log.e("${TAG}_$tag", "onMessage: $message") + //Log.e("${TAG}_$tag", "onMessage: $message") } inner class MyHandler(looper: Looper): Handler(looper) { @@ -166,7 +174,7 @@ class VideoView : ConstraintLayout, SurfaceHolder.Callback, GstCallback { retryCount++ } else { retryCount = RETRY_OFF - Log.e("${TAG}_$tag", "Retry count = 5, stopped retry...") + //Log.e("${TAG}_$tag", "Retry count = 5, stopped retry...") } } }