问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Android进阶之MediaPlayer和TextureView封装视频播放器详解(完美实现全 ...

发布网友 发布时间:2024-09-11 01:10

我来回答

1个回答

热心网友 时间:2024-09-15 11:50

前言

在上一篇文章中,我们讨论了SurfaceView和TextureView的基础知识点,以及它们在Android开发中的应用。SurfaceView和TextureView作为独立线程中的绘制和渲染,使得它们在对绘制速率要求较高的场景中,如相机预览和视频播放,具有更高的性能。今天,我们将利用TextureView来封装一个视频播放器。

视频播放器方案介绍

在考虑视频播放器的实现方案时,我们比较了两种方式:使用videoView+MediaPlayer和textureView+MediaPlayer。videoView继承自SurfaceView,能够在新建的Window中显示内容,因此不能放置在RecyclerView或ScrollView中,且一些View特性无法使用。而textureView不会创建新的窗口,其使用方式与普通View相同,更便于集成和扩展。

为什么使用TextureView

TextureView自Android 4.0(API level 14)引入,相较于SurfaceView,它直接将内容流投放到View中,支持移动、旋转、缩放、动画等变化,且必须在硬件加速的窗口中使用。这一特性使得TextureView在视频播放器封装中更为适用。

TextureView使用介绍

在使用TextureView时,需注意以下几点:
1. TextureView被创建后不能直接使用,必须添加到ViewGroup中。
2. TextureView需等待SurfaceTexture准备就绪才能发挥作用,通常通过SurfaceTextureListener设置监听器以接收onSurfaceTextureAvailable回调。

MediaPlayer介绍

MediaPlayer是Android中用于播放音频和视频的关键组件,提供了重要的状态、方法和回调,用于控制播放、暂停、加载和释放资源。

封装视频播放器

视频播放器的封装涉及两个主要组件:播放器控制器(mController)和用于显示视频内容的TextureView。这层关系通过FrameLayout容器进行管理。初始化包括TextureView、MediaPlayer和Controller的配置,等待SurfaceTexture准备就绪后,启动播放器。

实现全屏和小窗口播放

通过调整mContainer的显示方式,可以实现全屏和小窗口播放模式。全屏模式下,移除mContainer并添加到根布局中,设置为横屏显示;小窗口模式下,同样移除mContainer,调整其宽高属性。

总结

封装视频播放器涉及多个关键步骤和考虑因素,包括使用TextureView的特性、MediaPlayer的配置以及播放器状态和界面管理。虽然文章内容简洁,但涵盖了从基础知识点到实际封装过程的完整流程。如需深入了解,可以参考网上提供的NiceVideoPlayer等资源。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ipad输入键盘变小了 金黄色的鱼肉 这是鲶鱼吗?为啥有八根胡子。能吃不?味道咋样。。。 可塑橡皮有毒害吗可塑橡皮有没有毒害 小米手机应用锁密码忘了怎么解除还不想恢复出厂模式 欢乐斗地主得到的包箱里开的那个宝宝去那里领 混凝土外加剂的使用方法 混凝土外加剂使用注意事项 为什么观众喜欢在直播间买东西? 梦见别人开口向我借钱 更换发动机发动机号会变吗 Android Camera 做实时视频采集传输的时候怎么才能让帧率达到100FPS_百 ... ...借住协议咋写,用写清楚我是因为什么原因,借住在嫂子家的吗?_百度... 酒店借房是什么意思呀 爱情这个世界有那么多的悖论,小心翼翼不见得就会获得满分?许嵩的歌(城 ... ...什么程度,通常只在分手时见分晓,这就是爱情的悖论。”这句话怎么理 ... 怎么给电脑加装固态硬盘 台式机ssd硬盘怎么安装 科学理论有哪些 19世纪末提出了哪些重要的生物学学说和理论: 依托型工业共生网络的生物学基本理论是? ppt里的表格如何自动编号ppt里的表格如何自动编号出现 怎么从黑名单里把人删掉啊? 微信里怎样才能删掉黑名单里的人啊? 横梁压大门对风水有什么影响装修有什么风水禁忌? 1000兆宽带是多少兆啊? 爸爸回来了杜江儿子边吃饭边玩的是什么游戏机 1620是高速什么电话 佛组词有哪些fu wetool个人版管理软件(好友清理 一键加群) 准备起诉离婚需要什么材料 网店运营会把客户带走吗 android音视频开源框架有哪些? 在Android中使用MediaPlayer播放音频和视频 母猪配种前做什么疫苗 打架造成外伤,应该怎么解决那? 小孩上四年级与同学打架造成十级伤残,保险公司有赔吗 我儿十一岁在楼下玩不小心把十岁小孩眼睛打坏定十级残理赔多少... ...得我跟你合适吗! 她说那天我有空了我们聊聊吧!是啥意思 冰箱内的塑料容器哪种更安全? 哪些塑料盒可以放入冷冻室里? 中国股市:“有色金属”被严重低估的六大黑马,未来谁有10增长空间?(建 ... 谁有关于对股市称赞的新诗吗 大牛市你为什么赚不到钱:教你反败为胜的九大绝技作者简介 苹果手机清灰声波可以在哪里找到 为什么打电话显示您拨打的号码不正确 为什么打电话提示您拨打的号码不正确呢 什么是SC, CC, FC, WC? 您拨打的号码不正确是什么意思 您拨打的号码不正确什么意思 巴西盛产什么宝石 以战争有关成语