添加首帧渲染监听器以改进视频播放体验
This commit is contained in:
@@ -201,20 +201,30 @@ class FeatureHubActivity : AppCompatActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun handleAliveItemClick(item: AliveStreamItem) {
|
private fun handleAliveItemClick(item: AliveStreamItem) {
|
||||||
|
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 liveMode = resolvePlayMode(item.playProtocol)
|
||||||
val params = buildPlayParams(item)
|
val params = buildPlayParams(item)
|
||||||
if (params == null) {
|
if (params == null) {
|
||||||
Toast.makeText(this, "播放地址缺失", Toast.LENGTH_SHORT).show()
|
Toast.makeText(this, "播放地址缺失", Toast.LENGTH_SHORT).show()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
val intent = LivePlayActivity.createIntentWithParams(
|
LivePlayActivity.createIntentWithParams(
|
||||||
this,
|
this,
|
||||||
liveMode,
|
liveMode,
|
||||||
params.vhost,
|
params.vhost,
|
||||||
params.appName,
|
params.appName,
|
||||||
params.streamName,
|
params.streamName,
|
||||||
autoStart = true
|
autoStart = true
|
||||||
).apply {
|
)
|
||||||
|
}.apply {
|
||||||
item.previewImage?.let { putExtra(LivePlayActivity.EXTRA_PREVIEW_IMAGE_URL, it) }
|
item.previewImage?.let { putExtra(LivePlayActivity.EXTRA_PREVIEW_IMAGE_URL, it) }
|
||||||
}
|
}
|
||||||
startActivity(intent)
|
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? {
|
private fun buildPlayParams(item: AliveStreamItem): PlayParams? {
|
||||||
val env = envStore.read()
|
val env = envStore.read()
|
||||||
val vhost = item.vhost?.trim().orEmpty().ifBlank { env.normalizedVhost() }
|
val vhost = item.vhost?.trim().orEmpty().ifBlank { env.normalizedVhost() }
|
||||||
|
|||||||
Reference in New Issue
Block a user