动态添加 playView
This commit is contained in:
parent
ef03bda916
commit
162ad5288a
|
|
@ -64,6 +64,7 @@ class MainActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabS
|
|||
|
||||
viewPager2.isUserInputEnabled = false
|
||||
viewPager2.setPageTransformer { _, _ -> }
|
||||
viewPager2.offscreenPageLimit
|
||||
}
|
||||
|
||||
override fun ViewBinding.initListeners() {
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import androidx.core.view.updatePadding
|
|||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.fragment.app.FragmentManager.FragmentLifecycleCallbacks
|
||||
import androidx.fragment.app.findFragment
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.viewpager2.widget.ViewPager2
|
||||
import com.ama.core.architecture.appBase.AppViewsFragment
|
||||
|
|
@ -15,6 +16,7 @@ import com.ama.core.architecture.appBase.OnFragmentBackgroundListener
|
|||
import com.ama.core.architecture.util.setDataOrAdapter
|
||||
import com.ama.core.common.util.asSafe
|
||||
import com.gamedog.vididin.main.fragments.home.HomeFragmentStateAdapter
|
||||
import com.gamedog.vididin.main.fragments.home.fragment.HomeItemFragment
|
||||
import com.gamedog.vididin.main.interfaces.OnSwitchTabListener
|
||||
import com.gamedog.vididin.main.interfaces.OnTabStyleListener
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
|
|
@ -31,9 +33,6 @@ class HomeFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnSwit
|
|||
override val mViewModel: ViewModel by viewModels()
|
||||
override var isBackgroundBright: Boolean = true
|
||||
|
||||
|
||||
|
||||
//private val mViewPagerAdapter by lazy { HomeFragmentStateAdapter(this) }
|
||||
private val mViewPagerAdapter by lazy { HomeFragmentStateAdapter(this) }
|
||||
|
||||
override fun inflateViewBinding(
|
||||
|
|
@ -60,14 +59,16 @@ class HomeFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnSwit
|
|||
override fun onPageSelected(position: Int) {
|
||||
super.onPageSelected(position)
|
||||
setHomeTabStyle(mViewPagerAdapter.getFragmentByIndex(position))
|
||||
val curFragment: HomeItemFragment = mViewPagerAdapter.getFragmentByIndex(position) as HomeItemFragment
|
||||
curFragment.loadVideo()
|
||||
}
|
||||
})
|
||||
|
||||
childFragmentManager.registerFragmentLifecycleCallbacks(object :
|
||||
FragmentLifecycleCallbacks() {
|
||||
override fun onFragmentResumed(fm: FragmentManager, f: Fragment) {
|
||||
super.onFragmentResumed(fm, f)
|
||||
setHomeTabStyle(f)
|
||||
override fun onFragmentResumed(fm: FragmentManager, fra: Fragment) {
|
||||
super.onFragmentResumed(fm, fra)
|
||||
setHomeTabStyle(fra)
|
||||
}
|
||||
}, false)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package com.gamedog.vididin.main.fragments.home.fragment
|
|||
|
||||
|
||||
import android.os.Bundle
|
||||
import android.provider.MediaStore.Audio.Playlists.Members.PLAYLIST_ID
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.annotation.NonNull
|
||||
|
|
@ -14,15 +13,13 @@ import com.gamedog.vididin.widget.MyPlayerControlView
|
|||
import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.PlayerConstants
|
||||
import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.YouTubePlayer
|
||||
import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.listeners.AbstractYouTubePlayerListener
|
||||
import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.listeners.YouTubePlayerListener
|
||||
import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.options.IFramePlayerOptions
|
||||
import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.utils.loadOrCueVideo
|
||||
import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.views.YouTubePlayerView
|
||||
import kotlin.apply
|
||||
import kotlin.toString
|
||||
import com.gamedog.vididin.databinding.VididinappFeatureHomeItemLayoutBinding as ViewBinding
|
||||
|
||||
|
||||
class HomeItemFragment : AppViewsEmptyViewModelFragment<ViewBinding>() {
|
||||
private var mPlayerView: YouTubePlayerView? = null
|
||||
private var mIsStared = false
|
||||
private var mPlayer: YouTubePlayer? = null
|
||||
private var mVideoData: YoutubeVideo? = null
|
||||
|
|
@ -33,22 +30,17 @@ class HomeItemFragment : AppViewsEmptyViewModelFragment<ViewBinding>() {
|
|||
container: ViewGroup?,
|
||||
) = ViewBinding.inflate(inflater, container, false)
|
||||
|
||||
override fun ViewBinding.initViews() {
|
||||
|
||||
override fun ViewBinding.initViews() {
|
||||
tvPlay.setOnClickListener {
|
||||
mPlayer?.play()
|
||||
}
|
||||
|
||||
tvPause.setOnClickListener {
|
||||
mPlayer?.pause()
|
||||
//mPlayer.seekTo()
|
||||
mPlayer?.setPlaybackRate(PlayerConstants.PlaybackRate.RATE_2)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
tvVideoFrom.text = "@From-" + arguments?.getLong(KEY_ID).toString()
|
||||
tvVideoIntro.text = "Introduce-" + arguments?.getLong(KEY_ID).toString()
|
||||
|
||||
|
|
@ -67,13 +59,10 @@ class HomeItemFragment : AppViewsEmptyViewModelFragment<ViewBinding>() {
|
|||
|
||||
}
|
||||
))
|
||||
|
||||
lifecycle.addObserver(youtubePlayerView)
|
||||
youtubePlayerView.enableBackgroundPlayback(false)
|
||||
youtubePlayerView.enableAutomaticInitialization = false
|
||||
}
|
||||
|
||||
fun initAndStartPlay() {
|
||||
/*
|
||||
val youtubePlayerView: YouTubePlayerView = binding?.youtubePlayerView!!
|
||||
|
||||
val iFramePlayerOptions = IFramePlayerOptions.Builder(requireContext())
|
||||
|
|
@ -150,21 +139,51 @@ class HomeItemFragment : AppViewsEmptyViewModelFragment<ViewBinding>() {
|
|||
}
|
||||
|
||||
|
||||
}, iFramePlayerOptions)
|
||||
}, iFramePlayerOptions)*/
|
||||
|
||||
|
||||
|
||||
youtubePlayerView.addYouTubePlayerListener(object : AbstractYouTubePlayerListener() {
|
||||
|
||||
}
|
||||
|
||||
override fun ViewBinding.initListeners() {
|
||||
ivStar.setOnClickListener {
|
||||
mIsStared = !mIsStared
|
||||
ivStar.setImageResource(if (mIsStared) R.mipmap.home_star else R.mipmap.home_star_undo)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun ViewBinding.initObservers() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
fun loadVideo() {
|
||||
if (null == mPlayerView) {
|
||||
mPlayerView = YouTubePlayerView(requireContext())
|
||||
binding!!.playerContainer.addView(mPlayerView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
|
||||
lifecycle.addObserver(mPlayerView!!)
|
||||
mPlayerView?.enableAutomaticInitialization = true
|
||||
}
|
||||
|
||||
|
||||
val playerView = mPlayerView
|
||||
playerView!!.addYouTubePlayerListener(object : AbstractYouTubePlayerListener() {
|
||||
|
||||
override fun onReady(@NonNull youTubePlayer: YouTubePlayer) {
|
||||
mPlayer = youTubePlayer
|
||||
|
||||
//val playerUiController = DefaultPlayerUiController(youtubePlayerView, youTubePlayer)
|
||||
val playerUiController = MyPlayerControlView(youtubePlayerView, youTubePlayer)
|
||||
youtubePlayerView.setCustomPlayerUi(playerUiController.rootView)
|
||||
val playerUiController = MyPlayerControlView(playerView, youTubePlayer)
|
||||
playerView.setCustomPlayerUi(playerUiController.rootView)
|
||||
|
||||
if (mVideoData != null && !mVideoData?.id.isNullOrEmpty()) {
|
||||
youTubePlayer.loadVideo(mVideoData!!.id, 0f)
|
||||
youTubePlayer.loadOrCueVideo(
|
||||
lifecycle,
|
||||
mVideoData!!.id, 0f
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -185,23 +204,6 @@ class HomeItemFragment : AppViewsEmptyViewModelFragment<ViewBinding>() {
|
|||
})
|
||||
}
|
||||
|
||||
override fun ViewBinding.initListeners() {
|
||||
ivStar.setOnClickListener {
|
||||
mIsStared = !mIsStared
|
||||
ivStar.setImageResource(if (mIsStared) R.mipmap.home_star else R.mipmap.home_star_undo)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun ViewBinding.initObservers() {
|
||||
try {
|
||||
initAndStartPlay()
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
companion object {
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@
|
|||
android:clickable="true"
|
||||
/>
|
||||
|
||||
<com.pierfrancescosoffritti.androidyoutubeplayer.core.player.views.YouTubePlayerView
|
||||
android:id="@+id/youtube_player_view"
|
||||
<FrameLayout
|
||||
android:id="@+id/player_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"/>
|
||||
|
|
|
|||
Loading…
Reference in New Issue