Skip to content

Commit bb4fd56

Browse files
committed
fix video size on phone
1 parent 657b871 commit bb4fd56

File tree

14 files changed

+60
-89
lines changed

14 files changed

+60
-89
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616
<activity
1717
android:keepScreenOn="true"
1818
android:name=".MainActivity"
19-
android:banner="@drawable/tv"
19+
android:banner="@drawable/logo"
2020
android:exported="true"
21-
android:icon="@drawable/tv"
22-
android:logo="@drawable/tv"
21+
android:icon="@drawable/logo"
22+
android:logo="@drawable/logo"
2323
android:screenOrientation="landscape">
2424
<intent-filter>
2525
<action android:name="android.intent.action.MAIN" />

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

Lines changed: 0 additions & 23 deletions
This file was deleted.

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

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import android.util.Log
1313
import android.view.GestureDetector
1414
import android.view.KeyEvent
1515
import android.view.MotionEvent
16+
import android.view.View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
1617
import android.view.WindowManager
1718
import android.widget.ImageView
1819
import android.widget.LinearLayout
@@ -26,7 +27,7 @@ import java.security.MessageDigest
2627

2728
class MainActivity : FragmentActivity() {
2829

29-
private val playbackFragment = PlaybackFragment()
30+
private val playerFragment = PlayerFragment()
3031
private val mainFragment = MainFragment()
3132
private val infoFragment = InfoFragment()
3233

@@ -40,10 +41,11 @@ class MainActivity : FragmentActivity() {
4041

4142
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
4243
window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
44+
window.decorView.systemUiVisibility = SYSTEM_UI_FLAG_HIDE_NAVIGATION
4345

4446
if (savedInstanceState == null) {
4547
supportFragmentManager.beginTransaction()
46-
.add(R.id.main_browse_fragment, playbackFragment)
48+
.add(R.id.main_browse_fragment, playerFragment)
4749
.add(R.id.main_browse_fragment, mainFragment)
4850
.add(R.id.main_browse_fragment, infoFragment)
4951
.hide(infoFragment)
@@ -75,7 +77,7 @@ class MainActivity : FragmentActivity() {
7577

7678
fun play(tvViewModel: TVViewModel) {
7779
Log.i(TAG, "play: ${tvViewModel.getTV()}")
78-
playbackFragment.play(tvViewModel)
80+
playerFragment.play(tvViewModel)
7981
}
8082

8183
fun prev() {
@@ -134,6 +136,7 @@ class MainActivity : FragmentActivity() {
134136
private inner class GestureListener : GestureDetector.SimpleOnGestureListener() {
135137

136138
override fun onSingleTapConfirmed(e: MotionEvent): Boolean {
139+
Log.i(TAG, "onSingleTapConfirmed")
137140
switchMainFragment()
138141
return true
139142
}
@@ -240,49 +243,49 @@ class MainActivity : FragmentActivity() {
240243
if (mainFragment.isHidden) {
241244
prev()
242245
} else {
243-
if (mainFragment.selectedPosition == 0) {
244-
mainFragment.setSelectedPosition(
245-
mainFragment.tvListViewModel.maxNum.size - 1,
246-
false
247-
)
248-
}
246+
// if (mainFragment.selectedPosition == 0) {
247+
// mainFragment.setSelectedPosition(
248+
// mainFragment.tvListViewModel.maxNum.size - 1,
249+
// false
250+
// )
251+
// }
249252
}
250253
}
251254

252255
KeyEvent.KEYCODE_DPAD_DOWN -> {
253256
if (mainFragment.isHidden) {
254257
next()
255258
} else {
256-
if (mainFragment.selectedPosition == mainFragment.tvListViewModel.maxNum.size - 1) {
257-
// mainFragment.setSelectedPosition(0, false)
258-
hideMainFragment()
259-
return false
260-
}
259+
// if (mainFragment.selectedPosition == mainFragment.tvListViewModel.maxNum.size - 1) {
260+
//// mainFragment.setSelectedPosition(0, false)
261+
// hideMainFragment()
262+
// return false
263+
// }
261264
}
262265
}
263266

264267
KeyEvent.KEYCODE_DPAD_LEFT -> {
265268
if (mainFragment.isHidden) {
266269
prevSource()
267270
} else {
268-
if (mainFragment.tvListViewModel.getTVViewModelCurrent()
269-
?.getItemPosition() == 0
270-
) {
271-
// mainFragment.toLastPosition()
272-
hideMainFragment()
273-
}
271+
// if (mainFragment.tvListViewModel.getTVViewModelCurrent()
272+
// ?.getItemPosition() == 0
273+
// ) {
274+
//// mainFragment.toLastPosition()
275+
// hideMainFragment()
276+
// }
274277
}
275278
}
276279

277280
KeyEvent.KEYCODE_DPAD_RIGHT -> {
278281
if (mainFragment.isHidden) {
279282
nextSource()
280283
} else {
281-
if (mainFragment.tvListViewModel.getTVViewModelCurrent()
282-
?.getItemPosition() == mainFragment.tvListViewModel.maxNum[mainFragment.selectedPosition] - 1
283-
) {
284-
mainFragment.toFirstPosition()
285-
}
284+
// if (mainFragment.tvListViewModel.getTVViewModelCurrent()
285+
// ?.getItemPosition() == mainFragment.tvListViewModel.maxNum[mainFragment.selectedPosition] - 1
286+
// ) {
287+
// mainFragment.toFirstPosition()
288+
// }
286289
}
287290
}
288291
}

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

Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ import android.content.Context
44
import android.content.SharedPreferences
55
import android.os.Bundle
66
import android.util.Log
7+
import android.view.LayoutInflater
8+
import android.view.View
9+
import android.view.ViewGroup
710
import android.widget.Toast
811
import androidx.leanback.app.BrowseSupportFragment
912
import androidx.leanback.widget.ArrayObjectAdapter
@@ -95,17 +98,6 @@ class MainFragment : BrowseSupportFragment() {
9598
}
9699
}
97100

98-
fun checkProgram() {
99-
tvListViewModel.getTVListViewModel().value?.forEach { tvViewModel ->
100-
if (tvViewModel.program.value!!.isEmpty()) {
101-
if (tvViewModel.programId.value != null) {
102-
Log.i(TAG, "get program ${tvViewModel.title.value}")
103-
request?.fetchProgram(tvViewModel)
104-
}
105-
}
106-
}
107-
}
108-
109101
fun toLastPosition() {
110102
setSelectedPosition(
111103
selectedPosition, false,
@@ -244,6 +236,7 @@ class MainFragment : BrowseSupportFragment() {
244236
rowViewHolder: RowPresenter.ViewHolder,
245237
row: Row
246238
) {
239+
Log.i(TAG, "onSingleTapConfirmed")
247240
if (item is TVViewModel) {
248241
itemPosition = item.id.value!!
249242
savePosition(itemPosition)
@@ -261,17 +254,7 @@ class MainFragment : BrowseSupportFragment() {
261254
itemViewHolder: Presenter.ViewHolder?, item: Any?,
262255
rowViewHolder: RowPresenter.ViewHolder, row: Row
263256
) {
264-
if (itemViewHolder == null) {
265-
view?.post {
266-
val tvViewModel = tvListViewModel.getTVViewModel(itemPosition)
267-
if (tvViewModel != null) {
268-
setSelectedPosition(
269-
tvViewModel.getRowPosition(), false,
270-
SelectItemViewHolderTask(tvViewModel.getItemPosition())
271-
)
272-
}
273-
}
274-
}
257+
Log.i(TAG, "onSingleTapConfirmed1111")
275258
if (item is TVViewModel) {
276259
tvListViewModel.setItemPositionCurrent(item.id.value!!)
277260
}

app/src/main/java/com/lizongying/mytv/PlaybackFragment.kt renamed to app/src/main/java/com/lizongying/mytv/PlayerFragment.kt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,16 @@ import android.view.ViewGroup
88
import androidx.annotation.OptIn
99
import androidx.fragment.app.Fragment
1010
import androidx.media3.common.MediaItem
11+
import androidx.media3.common.Player
12+
import androidx.media3.common.VideoSize
1113
import androidx.media3.common.util.UnstableApi
1214
import androidx.media3.exoplayer.ExoPlayer
1315
import androidx.media3.ui.PlayerView
1416
import com.lizongying.mytv.databinding.PlayerBinding
1517
import com.lizongying.mytv.models.TVViewModel
1618

1719

18-
class PlaybackFragment : Fragment() {
20+
class PlayerFragment : Fragment() {
1921

2022
private var lastVideoUrl: String = ""
2123

@@ -52,6 +54,14 @@ class PlaybackFragment : Fragment() {
5254
.build()
5355
}
5456
playerView!!.player?.playWhenReady = true
57+
playerView!!.player?.addListener(object : Player.Listener {
58+
override fun onVideoSizeChanged(videoSize: VideoSize) {
59+
val aspectRatio = 16f / 9f
60+
val layoutParams = playerView?.layoutParams
61+
layoutParams?.width = (playerView?.measuredHeight?.times(aspectRatio))?.toInt()
62+
playerView?.layoutParams = layoutParams
63+
}
64+
})
5565
}
5666

5767
playerView!!.player?.run {

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@ CGTN 纪录频道,https://livedoc.cgtn.com/500d/prog_index.m3u8,https://resource
8484
三沙卫视,https://pullsstv90080111.ssws.tv/live/SSTV20220729.m3u8
8585
延边卫视,http://live.ybtvyun.com/video/s10006-44f040627ca1/index.m3u8;http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226220/index.m3u8
8686
浙江少儿,http://hw-m-l.cztv.com/channels/lantian/channel008/1080p.m3u8
87-
南京少儿,http://live.nbs.cn/channels/njtv/sepd/500k.m3u8
8887
8988
移动专区
9089
CETV1,http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221225753/index.m3u8
@@ -161,6 +160,9 @@ CHC动作电影,http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226465/in
161160
}
162161
if (!i.contains(",")) {
163162
channel = i.trim()
163+
if (channel == "移动专区") {
164+
break
165+
}
164166
continue
165167
}
166168
val p = i.split(",")

app/src/main/java/com/lizongying/mytv/api/YSP.kt

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@ package com.lizongying.mytv.api
22

33
import android.content.Context
44
import android.content.SharedPreferences
5+
import android.util.Log
56
import com.lizongying.mytv.Encryptor
67
import com.lizongying.mytv.MainActivity
78
import com.lizongying.mytv.models.TVViewModel
89
import java.util.Date
910
import kotlin.math.floor
11+
import kotlin.random.Random
1012

1113
class YSP(var context: Context) {
1214
private var cnlid = ""
@@ -87,14 +89,8 @@ class YSP(var context: Context) {
8789

8890
fun generateGuid(): String {
8991
val timestamp = (System.currentTimeMillis()).toString(36)
90-
val originalString = Math.random().toString()
91-
val resultString = if (originalString.startsWith("0.")) {
92-
originalString.substring(2)
93-
} else {
94-
originalString
95-
}
96-
val randomPart = resultString.toLong().toString(36)
97-
return timestamp + "_" + randomPart
92+
val randomPart = Random.nextLong().toString(36).take(11)
93+
return timestamp + "_" + "0".repeat(11 - randomPart.length) + randomPart
9894
}
9995

10096
fun getGuid(): String {

app/src/main/java/com/lizongying/mytv/models/TVViewModel.kt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import androidx.media3.common.MediaItem
1010
import androidx.media3.common.util.UnstableApi
1111
import androidx.media3.datasource.DefaultHttpDataSource
1212
import androidx.media3.exoplayer.hls.HlsMediaSource
13-
import com.lizongying.mytv.CustomLoadErrorHandlingPolicy
1413
import com.lizongying.mytv.TV
1514
import com.lizongying.mytv.proto.Ysp.cn.yangshipin.omstv.common.proto.programModel.Program
1615
import java.util.Date
@@ -426,9 +425,7 @@ class TVViewModel(private var tv: TV) : ViewModel() {
426425
val httpDataSource = DefaultHttpDataSource.Factory()
427426
mHeaders?.let { httpDataSource.setDefaultRequestProperties(it) }
428427

429-
return HlsMediaSource.Factory(httpDataSource).setLoadErrorHandlingPolicy(
430-
CustomLoadErrorHandlingPolicy(mMinimumLoadableRetryCount)
431-
).createMediaSource(
428+
return HlsMediaSource.Factory(httpDataSource).createMediaSource(
432429
MediaItem.fromUri(
433430
Uri.parse(videoUrl)
434431
)

app/src/main/res/drawable/logo.png

1.64 KB
Loading

app/src/main/res/drawable/tv.png

-1.12 KB
Binary file not shown.

0 commit comments

Comments
 (0)