diff --git a/app/src/main/java/com/ray650128/gstreamer_demo_app/VideoView.kt b/app/src/main/java/com/ray650128/gstreamer_demo_app/VideoView.kt index 278ae4c..c9a7688 100644 --- a/app/src/main/java/com/ray650128/gstreamer_demo_app/VideoView.kt +++ b/app/src/main/java/com/ray650128/gstreamer_demo_app/VideoView.kt @@ -125,6 +125,7 @@ class VideoView : ConstraintLayout, SurfaceHolder.Callback, GstCallback { GstStatus.PLAYING -> mHandler.sendMessage(Message().apply { what = MSG_PLAY }) GstStatus.PAUSE -> mHandler.sendMessage(Message().apply { what = MSG_PAUSE }) GstStatus.ERROR_WHEN_OPENING -> mHandler.sendMessage(Message().apply { what = MSG_PAUSE }) + GstStatus.BUFFERING -> mHandler.sendMessage(Message().apply { what = MSG_BUFFERING }) else -> {} } Log.e("${TAG}_$tag", "onStatus: $gstStatus") @@ -145,6 +146,10 @@ class VideoView : ConstraintLayout, SurfaceHolder.Callback, GstCallback { isLoading = false isPlaying = true } + MSG_BUFFERING -> { + isLoading = true + isPlaying = true + } } } } @@ -157,6 +162,6 @@ class VideoView : ConstraintLayout, SurfaceHolder.Callback, GstCallback { private const val MSG_PAUSE = 1 private const val MSG_PLAY = 2 - + private const val MSG_BUFFERING = 3 } } \ No newline at end of file diff --git a/gstreamer_player/src/com/hisharp/gstreamer_player/GstLibrary.java b/gstreamer_player/src/com/hisharp/gstreamer_player/GstLibrary.java index eb33da3..fd6d6be 100644 --- a/gstreamer_player/src/com/hisharp/gstreamer_player/GstLibrary.java +++ b/gstreamer_player/src/com/hisharp/gstreamer_player/GstLibrary.java @@ -76,7 +76,7 @@ public class GstLibrary implements Closeable { if (gstCallback == null) return; if (message.contains("State changed to PAUSED")) { gstCallback.onStatus(GstStatus.PAUSE); - } else if (message.contains("State changed to PLAYING")) { + } else if (message.contains("State changed to PLAYING") || message.contains("Buffering complete")) { gstCallback.onStatus(GstStatus.PLAYING); } else if (message.contains("Could not open resource for reading and writing")) { gstCallback.onStatus(GstStatus.ERROR_WHEN_OPENING); @@ -84,6 +84,8 @@ public class GstLibrary implements Closeable { gstCallback.onStatus(GstStatus.ERROR); } else if (message.contains("Unhandled error")) { gstCallback.onStatus(GstStatus.ERROR); + } else if (message.contains("Buffering")) { + gstCallback.onStatus(GstStatus.BUFFERING); } gstCallback.onMessage(message); } diff --git a/gstreamer_player/src/com/hisharp/gstreamer_player/GstStatus.java b/gstreamer_player/src/com/hisharp/gstreamer_player/GstStatus.java index 2d687fc..faf56ea 100644 --- a/gstreamer_player/src/com/hisharp/gstreamer_player/GstStatus.java +++ b/gstreamer_player/src/com/hisharp/gstreamer_player/GstStatus.java @@ -5,5 +5,6 @@ public enum GstStatus { PAUSE, PLAYING, ERROR, - ERROR_WHEN_OPENING + ERROR_WHEN_OPENING, + BUFFERING }