From e68b13e0c27efcf1da24169b585cf905d682a357 Mon Sep 17 00:00:00 2001 From: shou Date: Thu, 8 Jan 2026 13:53:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=A6=96=E5=B8=A7=E6=B8=B2?= =?UTF-8?q?=E6=9F=93=E7=9B=91=E5=90=AC=E5=99=A8=E4=BB=A5=E6=94=B9=E8=BF=9B?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E6=92=AD=E6=94=BE=E4=BD=93=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/SellyCloudSDK/FeatureHubActivity.kt | 46 +++++++++++++------ 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/example/src/main/java/com/demo/SellyCloudSDK/FeatureHubActivity.kt b/example/src/main/java/com/demo/SellyCloudSDK/FeatureHubActivity.kt index 7680240..7f75b67 100644 --- a/example/src/main/java/com/demo/SellyCloudSDK/FeatureHubActivity.kt +++ b/example/src/main/java/com/demo/SellyCloudSDK/FeatureHubActivity.kt @@ -201,20 +201,30 @@ class FeatureHubActivity : AppCompatActivity() { } private fun handleAliveItemClick(item: AliveStreamItem) { - val liveMode = resolvePlayMode(item.playProtocol) - val params = buildPlayParams(item) - if (params == null) { - Toast.makeText(this, "播放地址缺失", Toast.LENGTH_SHORT).show() - return - } - val intent = LivePlayActivity.createIntentWithParams( - this, - liveMode, - params.vhost, - params.appName, - params.streamName, - autoStart = true - ).apply { + val url = item.url?.trim().orEmpty() + val intent = if (url.isNotEmpty()) { + LivePlayActivity.createIntent( + this, + resolvePlayModeFromUrl(url), + url, + autoStart = true + ) + } else { + val liveMode = resolvePlayMode(item.playProtocol) + val params = buildPlayParams(item) + if (params == null) { + Toast.makeText(this, "播放地址缺失", Toast.LENGTH_SHORT).show() + return + } + LivePlayActivity.createIntentWithParams( + this, + liveMode, + params.vhost, + params.appName, + params.streamName, + autoStart = true + ) + }.apply { item.previewImage?.let { putExtra(LivePlayActivity.EXTRA_PREVIEW_IMAGE_URL, it) } } startActivity(intent) @@ -229,6 +239,14 @@ class FeatureHubActivity : AppCompatActivity() { } } + private fun resolvePlayModeFromUrl(url: String): SellyLiveMode { + return if (url.trim().lowercase().startsWith("rtmp://")) { + SellyLiveMode.RTMP + } else { + SellyLiveMode.RTC + } + } + private fun buildPlayParams(item: AliveStreamItem): PlayParams? { val env = envStore.read() val vhost = item.vhost?.trim().orEmpty().ifBlank { env.normalizedVhost() }