添加首帧渲染监听器以改进视频播放体验
This commit is contained in:
@@ -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() }
|
||||
|
||||
Reference in New Issue
Block a user