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() }