diff --git a/library/src/main/java/com/pedro/library/util/streamclient/RtmpStreamClient.kt b/library/src/main/java/com/pedro/library/util/streamclient/RtmpStreamClient.kt index d8866ee18..e1d7e93fa 100644 --- a/library/src/main/java/com/pedro/library/util/streamclient/RtmpStreamClient.kt +++ b/library/src/main/java/com/pedro/library/util/streamclient/RtmpStreamClient.kt @@ -28,6 +28,10 @@ class RtmpStreamClient( private val streamClientListener: StreamClientListener? ): StreamBaseClient() { + fun setIgnoredCommandCallback(callback: ((String) -> Unit)?) { + rtmpClient.setIgnoredCommandCallback(callback) + } + /** * Must be called before start stream or will be ignored. * diff --git a/rtmp/src/main/java/com/pedro/rtmp/rtmp/RtmpClient.kt b/rtmp/src/main/java/com/pedro/rtmp/rtmp/RtmpClient.kt index 4a66d1a98..61a9e1087 100644 --- a/rtmp/src/main/java/com/pedro/rtmp/rtmp/RtmpClient.kt +++ b/rtmp/src/main/java/com/pedro/rtmp/rtmp/RtmpClient.kt @@ -94,6 +94,7 @@ class RtmpClient(private val connectChecker: ConnectChecker) { private var reTries = 0 private var checkServerAlive = false private var publishPermitted = false + private var ignoredCommandReceived: ((String) -> Unit)? = null val droppedAudioFrames: Long get() = rtmpSender.getDroppedAudioFrames() @@ -144,6 +145,10 @@ class RtmpClient(private val connectChecker: ConnectChecker) { } } + fun setIgnoredCommandCallback(callback: ((String) -> Unit)?) { + ignoredCommandReceived = callback + } + /** * Check periodically if server is alive using Echo protocol. */ @@ -424,9 +429,7 @@ class RtmpClient(private val connectChecker: ConnectChecker) { when (commandName) { "connect" -> { if (commandsManager.onAuth) { - onMainThread { - connectChecker.onAuthSuccess() - } + onMainThread { connectChecker.onAuthSuccess() } commandsManager.onAuth = false } commandsManager.createStream(socket) @@ -520,7 +523,9 @@ class RtmpClient(private val connectChecker: ConnectChecker) { } } else -> { - Log.i(TAG, "onStatus $code response received from ${commandName ?: "unknown command"}") + val message = "onStatus $code response received from ${commandName ?: "unknown command"}" + Log.i(TAG, message) + ignoredCommandReceived?.let { onMainThread { it.invoke(message) } } } } } catch (e: ClassCastException) { @@ -528,7 +533,9 @@ class RtmpClient(private val connectChecker: ConnectChecker) { } } else -> { - Log.i(TAG, "unknown ${command.name} response received from ${commandName ?: "unknown command"}") + val message = "unknown ${command.name} response received from ${commandName ?: "unknown command"}" + Log.i(TAG, message) + ignoredCommandReceived?.let { onMainThread { it.invoke(message) } } } } }