Android Kotlin 使用 ViewPager2 和 ExoPlayer 实现上下滑动播放视频
要实现Androidx Kotlin中的上下滑动播放功能,可以使用ViewPager2和Fragment来实现。以下是实现步骤:\n\n1. 首先,在项目的build.gradle文件中,确保已经添加了ViewPager2的依赖:\n\nkotlin\nimplementation 'androidx.viewpager2:viewpager2:1.0.0'\n\n\n2. 在布局文件中,添加ViewPager2:\n\nkotlin\n<androidx.viewpager2.widget.ViewPager2\n android:id="@+id/viewPager2"\n android:layout_width="match_parent"\n android:layout_height="match_parent" />\n\n\n3. 创建一个Fragment来承载ExoPlayer实例和视频播放相关的逻辑。例如,创建一个名为VideoPlayerFragment的Fragment:\n\nkotlin\nclass VideoPlayerFragment : Fragment() {\n private lateinit var player: SimpleExoPlayer\n private lateinit var playerView: PlayerView\n\n override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {\n val view = inflater.inflate(R.layout.fragment_video_player, container, false)\n playerView = view.findViewById(R.id.playerView)\n return view\n }\n\n override fun onViewCreated(view: View, savedInstanceState: Bundle?) {\n super.onViewCreated(view, savedInstanceState)\n \n // 初始化ExoPlayer\n player = SimpleExoPlayer.Builder(requireContext())\n .build()\n playerView.player = player\n \n // 设置视频播放URL\n val mediaItem = MediaItem.fromUri("https://example.com/video.mp4")\n player.setMediaItem(mediaItem)\n \n // 准备播放\n player.prepare()\n \n // 开始播放\n player.play()\n }\n\n override fun onDestroyView() {\n super.onDestroyView()\n \n // 释放ExoPlayer资源\n player.release()\n }\n}\n\n\n4. 创建一个FragmentStateAdapter来管理ViewPager2中的Fragment。例如,创建一个名为VideoPagerAdapter的FragmentStateAdapter:\n\nkotlin\nclass VideoPagerAdapter(fragmentManager: FragmentManager, lifecycle: Lifecycle) : FragmentStateAdapter(fragmentManager, lifecycle) {\n override fun getItemCount(): Int {\n // 返回Fragment的数量\n return 3\n }\n\n override fun createFragment(position: Int): Fragment {\n // 根据位置创建对应的Fragment\n return VideoPlayerFragment()\n }\n}\n\n\n5. 在Activity或Fragment中,初始化ViewPager2并设置适配器:\n\nkotlin\nval viewPager2 = findViewById<ViewPager2>(R.id.viewPager2)\nval adapter = VideoPagerAdapter(supportFragmentManager, lifecycle)\nviewPager2.adapter = adapter\n\n\n通过以上步骤,就可以实现在ViewPager2中上下滑动播放视频的功能。每个页面都使用一个单独的Fragment来承载ExoPlayer实例,并在对应的Fragment中初始化和释放ExoPlayer资源。
原文地址: https://www.cveoy.top/t/topic/qg8S 著作权归作者所有。请勿转载和采集!