v9.1.0 修复切台加载提示被旧频道回调提前隐藏

This commit is contained in:
Hermes Agent committed 2026-10-08 13:39:19 +08:00
1 parent 6ae217b9cd
commit 277485394c
2 files changed
+13 -4

No files matched your search

+2 -2
View File
@@ -11,8 +11,8 @@ android {
applicationId = "com.iptv807.tv" applicationId = "com.iptv807.tv"
minSdk = 21 minSdk = 21
targetSdk = 35 targetSdk = 35
versionCode = 900 versionCode = 910
versionName = "9.0.0" versionName = "9.1.0"
} }
buildTypes { buildTypes {
@@ -84,6 +84,8 @@ class MainActivity : Activity() {
private var lastSelfTest = "" private var lastSelfTest = ""
private var loadChannelName = "" private var loadChannelName = ""
private var triedFresh = false private var triedFresh = false
/** true=当前这次"新开播"还没真正开始(避免旧频道的播放回调把加载提示提前隐藏) */
private var awaitingStart = false
private var failureReport = "" private var failureReport = ""
private var wasStopped = false private var wasStopped = false
private var resumeBtn: TextView? = null private var resumeBtn: TextView? = null
@@ -215,12 +217,16 @@ class MainActivity : Activity() {
} }
override fun onPlaybackStateChanged(state: Int) { override fun onPlaybackStateChanged(state: Int) {
when (state) { when (state) {
Player.STATE_READY -> { setMode(MODE_NATIVE); hideLoading() } Player.STATE_READY -> { setMode(MODE_NATIVE); if (awaitingStart) { awaitingStart = false; hideLoading() } }
Player.STATE_BUFFERING -> { /* 缓冲中,保持计时继续 */ } Player.STATE_BUFFERING -> { /* 缓冲中,保持计时继续 */ }
} }
} }
override fun onIsPlayingChanged(p: Boolean) { override fun onIsPlayingChanged(p: Boolean) {
if (p) { hideLoading(); resumeBtn?.visibility = View.GONE } if (p) {
resumeBtn?.visibility = View.GONE
// 只有"这次要播的新频道"真正起播了才收起加载提示
if (awaitingStart) { awaitingStart = false; hideLoading() }
}
} }
}) })
@@ -484,8 +490,10 @@ class MainActivity : Activity() {
/** 开始一次新的换台计时(只在切台时调用) */ /** 开始一次新的换台计时(只在切台时调用) */
private fun beginLoading() { private fun beginLoading() {
loadStart = System.currentTimeMillis() loadStart = System.currentTimeMillis()
awaitingStart = false
loadingText.text = "正在加载 1 秒,精彩继续…" loadingText.text = "正在加载 1 秒,精彩继续…"
loadingMask.visibility = View.VISIBLE loadingMask.visibility = View.VISIBLE
loadingMask.bringToFront()
handler.removeCallbacks(loadTick) handler.removeCallbacks(loadTick)
handler.postDelayed(loadTick, 1000) handler.postDelayed(loadTick, 1000)
} }
@@ -577,6 +585,7 @@ class MainActivity : Activity() {
val item = MediaItem.Builder().setUri(Uri.parse(url)) val item = MediaItem.Builder().setUri(Uri.parse(url))
.setMimeType(if (isFlv) MimeTypes.VIDEO_FLV else MimeTypes.APPLICATION_M3U8) .setMimeType(if (isFlv) MimeTypes.VIDEO_FLV else MimeTypes.APPLICATION_M3U8)
.build() .build()
awaitingStart = true
player?.setMediaItem(item) player?.setMediaItem(item)
player?.prepare() player?.prepare()
player?.playWhenReady = true player?.playWhenReady = true