Skip to content

Commit 930c795

Browse files
committed
get token on switch
1 parent 57d42bc commit 930c795

File tree

4 files changed

+50
-110
lines changed

4 files changed

+50
-110
lines changed

app/src/main/java/com/lizongying/mytv/MainFragment.kt

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,6 @@ class MainFragment : BrowseSupportFragment() {
4343

4444
private var ready = 0
4545

46-
init {
47-
request.fetchToken(::fragmentReady)
48-
}
49-
5046
override fun onCreate(savedInstanceState: Bundle?) {
5147
super.onCreate(savedInstanceState)
5248
headersState = HEADERS_DISABLED
@@ -212,11 +208,7 @@ class MainFragment : BrowseSupportFragment() {
212208
fun fragmentReady() {
213209
ready++
214210
Log.i(TAG, "ready $ready")
215-
if (ready == 4) {
216-
217-
// request?.fetchPage()
218-
// tvListViewModel.getTVViewModel(0)?.let { request?.fetchProgram(it) }
219-
211+
if (ready == 3) {
220212
val tvViewModel = tvListViewModel.getTVViewModel(itemPosition)
221213
tvViewModel?.changed()
222214

@@ -280,10 +272,6 @@ class MainFragment : BrowseSupportFragment() {
280272
}
281273
}
282274

283-
fun tvViewModel(): TVViewModel? {
284-
return tvListViewModel.getTVViewModel(itemPosition)
285-
}
286-
287275
private fun setupEventListeners() {
288276
onItemViewClickedListener = ItemViewClickedListener()
289277
onItemViewSelectedListener = ItemViewSelectedListener()

app/src/main/java/com/lizongying/mytv/PlayerFragment.kt

Lines changed: 1 addition & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,6 @@ import androidx.media3.common.Player
1414
import androidx.media3.common.VideoSize
1515
import androidx.media3.common.util.UnstableApi
1616
import androidx.media3.exoplayer.ExoPlayer
17-
import androidx.media3.exoplayer.analytics.AnalyticsListener
18-
import androidx.media3.exoplayer.source.LoadEventInfo
19-
import androidx.media3.exoplayer.source.MediaLoadData
2017
import androidx.media3.ui.PlayerView
2118
import com.lizongying.mytv.databinding.PlayerBinding
2219
import com.lizongying.mytv.models.TVViewModel
@@ -80,71 +77,8 @@ class PlayerFragment : Fragment() {
8077
val videoUrlCurrent =
8178
tvViewModel.videoIndex.value?.let { tvViewModel.videoUrl.value?.get(it) }
8279
playerView?.player?.run {
83-
val mediaItem = MediaItem.Builder()
84-
tvViewModel.id.value?.let { mediaItem.setMediaId(it.toString()) }
85-
videoUrlCurrent?.let { mediaItem.setUri(it) }
86-
setMediaItem(mediaItem.build())
80+
videoUrlCurrent?.let { setMediaItem(MediaItem.fromUri(it)) }
8781
prepare()
88-
89-
// val httpDataSource = DefaultHttpDataSource.Factory()
90-
// val hls = HlsMediaSource.Factory(httpDataSource).createMediaSource(
91-
// MediaItem.fromUri(
92-
// Uri.parse(videoUrlCurrent)
93-
// )
94-
// )
95-
// val analyticsListener: AnalyticsListener= MyAnalyticsListener()
96-
// val exoPlayer = playerView?.player as ExoPlayer
97-
// exoPlayer.addAnalyticsListener(analyticsListener)
98-
// exoPlayer.setMediaSource(hls)
99-
// exoPlayer.playWhenReady = true
100-
//
101-
//
102-
// exoPlayer.let {
103-
// val parameters =
104-
// TrackSelectionParameters.Builder().setPreferredAudioMimeType("application/id3").build()
105-
// // 更新轨道选择器参数
106-
// exoPlayer.trackSelector?.parameters = parameters
107-
// Log.i(TAG, "parameters $parameters")
108-
// }
109-
//
110-
// // 获取当前轨道组
111-
//
112-
// playerView?.player = exoPlayer
113-
// playerView?.player?.prepare()
114-
115-
116-
//
117-
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
118-
// val codecList = MediaCodecList(MediaCodecList.ALL_CODECS)
119-
// val codecInfos = codecList.codecInfos
120-
//
121-
// for (codecInfo in codecInfos) {
122-
//
123-
// val supportedTypes = codecInfo.supportedTypes
124-
// for (type in supportedTypes) {
125-
// Log.d("supportedTypes", "$type")
126-
//// if (type.equals(androidx.media3.exoplayer.mediacode, ignoreCase = true)) {
127-
//// Log.d("AudioCodecChecker", "Device supports MPEG-L2")
128-
//// return
129-
//// }
130-
// }
131-
// }
132-
//
133-
// Log.d("AudioCodecChecker", "Device does not support MPEG-L2")
134-
// }
135-
136-
}
137-
}
138-
139-
@UnstableApi
140-
class MyAnalyticsListener : AnalyticsListener {
141-
override fun onLoadStarted(
142-
eventTime: AnalyticsListener.EventTime,
143-
loadEventInfo: LoadEventInfo,
144-
mediaLoadData: MediaLoadData
145-
) {
146-
super.onLoadStarted(eventTime, loadEventInfo, mediaLoadData)
147-
// Log.i(TAG, "loadEventInfo.uri ${loadEventInfo.uri} ${mediaLoadData.trackFormat.toString()}")
14882
}
14983
}
15084

app/src/main/java/com/lizongying/mytv/Request.kt

Lines changed: 48 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -114,39 +114,16 @@ class Request {
114114
})
115115
}
116116

117-
fun fetchData(tvModel: TVViewModel) {
117+
fun fetchVideo(tvModel: TVViewModel, cookie: String) {
118118
if (::myRunnable.isInitialized) {
119119
handler.removeCallbacks(myRunnable)
120120
}
121121

122-
tvModel.seq = 0
123-
val data = ysp?.switch(tvModel)
124122
val title = tvModel.title.value
125123

124+
tvModel.seq = 0
125+
val data = ysp?.switch(tvModel)
126126
val request = data?.let { LiveInfoRequest(it) }
127-
var cookie = "guid=1; vplatform=109"
128-
val channels = arrayOf(
129-
"CCTV3 综艺",
130-
"CCTV6 电影",
131-
"CCTV8 电视剧",
132-
"风云剧场",
133-
"第一剧场",
134-
"怀旧剧场",
135-
"世界地理",
136-
"风云音乐",
137-
"兵器科技",
138-
"风云足球",
139-
"高尔夫网球",
140-
"女性时尚",
141-
"央视文化精品",
142-
"央视台球",
143-
"电视指南",
144-
"卫生健康",
145-
)
146-
if (token != null && tvModel.title.value in channels) {
147-
cookie =
148-
"guid=1; vplatform=109; yspopenid=vu0-8lgGV2LW9QjDeuBFsX8yMnzs37Q3_HZF6XyVDpGR_I; vusession=$token"
149-
}
150127

151128
request?.let { yspApiService.getLiveInfo(cookie, it) }
152129
?.enqueue(object : Callback<LiveInfo> {
@@ -197,6 +174,51 @@ class Request {
197174
})
198175
}
199176

177+
fun fetchData(tvModel: TVViewModel) {
178+
var cookie = "guid=1; vplatform=109"
179+
val channels = arrayOf(
180+
"CCTV3 综艺",
181+
"CCTV6 电影",
182+
"CCTV8 电视剧",
183+
"风云剧场",
184+
"第一剧场",
185+
"怀旧剧场",
186+
"世界地理",
187+
"风云音乐",
188+
"兵器科技",
189+
"风云足球",
190+
"高尔夫网球",
191+
"女性时尚",
192+
"央视文化精品",
193+
"央视台球",
194+
"电视指南",
195+
"卫生健康",
196+
)
197+
if (tvModel.title.value in channels) {
198+
yspTokenService.getInfo()
199+
.enqueue(object : Callback<Info> {
200+
override fun onResponse(call: Call<Info>, response: Response<Info>) {
201+
if (response.isSuccessful) {
202+
val info = response.body()
203+
token = info?.data?.token
204+
Log.i(TAG, "info success $token")
205+
cookie =
206+
"guid=1; vplatform=109; yspopenid=vu0-8lgGV2LW9QjDeuBFsX8yMnzs37Q3_HZF6XyVDpGR_I; vusession=$token"
207+
fetchVideo(tvModel, cookie)
208+
} else {
209+
Log.e(TAG, "info status error")
210+
}
211+
}
212+
213+
override fun onFailure(call: Call<Info>, t: Throwable) {
214+
Log.e(TAG, "info request error $t")
215+
}
216+
})
217+
} else {
218+
fetchVideo(tvModel, cookie)
219+
}
220+
}
221+
200222
inner class MyRunnable(private val tvModel: TVViewModel) : Runnable {
201223
override fun run() {
202224
fetchBtrace(tvModel)

app/src/main/java/com/lizongying/mytv/TV.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,4 @@ data class TV(
2525
", programId='" + programId + '\'' +
2626
'}'
2727
}
28-
29-
companion object {
30-
internal const val serialVersionUID = 727566175075960653L
31-
}
3228
}

0 commit comments

Comments
 (0)