文档之家
首页
教学研究
幼儿教育
高等教育
外语考试
建筑/土木
经管营销
自然科学
当前位置:
文档之家
›
Exoplayer简介及应用
Exoplayer简介及应用
格式:pptx
大小:88.73 KB
文档页数:15
下载文档原格式
下载原文件
/ 15
下载本文档
合集下载
下载提示
文本预览
1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Uni tySendMessage(UpdateT exture) getT extureId() getT extureId() drawImage() UpdateT extureWi thId()
LowPowerPlayer使用ExoPlayer的流程
sd 序 列 图 2 MainActivity ImxRender ExoPlayer mGLView = new GLSurfaceView() mUIRenderer = new ImxRender() mGLView.setRenderer(mUIRenderer) mPlayer = new ExoPlayer)() parseData(intent)
ExoPlayer使用
4.启动player 在ExoPlayer中,媒体都用MediaSource代表,播放影片必须先创建 对应的MediaSource,然后传给ExoPlayer.prepare, Uri uri = Uri.parse(mVideoPath); MediaSource videoSource = buildMediaSource(uri); mPlayer.prepare(videoSource); mPlayer.setPlayWhenReady(true); 然后就可以控制player了,setPlayWhenReady用来开始和暂停; seekTo用来控制进度......
缺点
• ExoPlayer的基本音视频模块依赖Android的MediaCodec API,发布 于Android 4.1 (API level 16),所以4.1以前的版本不支持。DRM Widevine通用加密Android 4.4 (API level 19)之后才支持。
基本组件
• MediaSource定义将要播放的媒体,加载媒体,加载位置。 • Renderer s 渲染媒体的音频,视频的track • TrackSelector选择MediaSource提供的track,传给Renderer渲染 • LoadControl控制MediaSource缓存多少数据和缓存时机。 ExoPlayer提供了基本的实现,用户也可以用自己的实现替代它们。
优缺点
• 和MediaPlayer相比,ExoPlayer有很多优点: 1.支持Dynamic Adaptive Streaming over HTTP (DASH) 和 SmoothStreaming 2.支持advanced HLS, 例如对标签#EXT-X-DISCONTINUITY等正确处理 3.无缝循环播放媒体的能力 4.和你的应用一起更新的能力 5.更少的设备依赖和Android版本依赖 6.支持Widevine通用加密(Android 4.4 (API level 19) and higher) 7.定制和扩展能力。ExoPlayer在实现时就以此为指导,允许很多模块可 以被用户的实现替换 8.快速集成官方扩展库的能力,比如我们就用到了GoogleVR的3D audio库
ExoPlayer介绍及应用
ExoPlayer介绍
• ExoPlayer是开源的应用层的media player,构建在Android底层的 media APIs之上,它作为MediaPlayer的替代,用于播放本地和网 络上的音频和视频。ExoPlayer支持的特性远超过了MediaPlayer, 包括支持DASH和 SmoothStreaming adaptive playbacks。 而且和 MediaPlayer比较,ExoPlayer更易于定制和扩展,也易于和应用一 起更新. • 我们年初集成的,用的版本是2.4.0,他们的版本更新很快,现在 已经是2.5.2,已经支持RTMP。
SimpleExoPlayer mPlayer =
ExoPlayerFactory.newSimpleInstance(context, trackSelector);
ExoPlayer使用
3.把player和view或者surface绑定 根据我们的应用场景,我们是在Unity plugin里面解码并得到video 每帧的texture,所以我们创建并绑定了一个Surface(由 SurfaceTexture创建,它有onFrameAvailable事件,可以监听每一个 帧的texture的创建) mPlayer.setVideoSurface(mVideoRenderer.getSurface());
ExoPlayer使用
1.在build.gradlrface绑定 4.启动player 5.结束播放后释放资源
ExoPlayer使用
1.在build.gradle中添加依赖,因为我们的主要应用是作为Unity的插 件使用,即把ExoPlayer编成jar包,ExoPlayer不会自动编进插件jar包, 所以需要在build.gradle中直接添加ExoPlayer的jar包依赖,同时把这 些jar包拷贝到Unity的plugin目录下。 compile exoplayer-core.jar' // 核心功能,必需 compile 'exoplayer-dash.jar' // for DASH compile 'exoplayer-hls.jar' // for HLS compile 'exoplayer-ss.jar' //for SmoothStreaming compile 'exoplayer-ui.jar' // UI,进度条播放按钮等,我们没用到
VRPlayer使用ExoPlayer的流程
sd 序 列 图 Uni ty App Androi dPl ayer T extureSurfaceRenderer ExoPl ayer pl ay(movi e uri ) prepare() onVi deoInputFormatChanged()
ExoPlayer使用
5.结束播放后释放资源 当不再需要player时,记得释放资源,调用ExoPlayer.release
MediaSource
• MediaSource代表要播放的媒体,ExoPlayer提供了MediaSource支 持DASH,SmoothStreaming,HLS和普通媒体文件。 • 除此之外,ExoPlayer还提供了MergingMediaSource, LoopingMediaSource, ConcatenatingMediaSource 和 DynamicConcatenatingMediaSource,以支持复杂的播放组合。 MergingMediaSource可以用来合并视频和字幕文件; LoopingMediaSource用于无缝循环播放,固定次数播放; ConcatenatingMediaSource 用于无缝播放一序列影片。
定制
• 相对于Android的MediaPlayer,ExoPlayer的一个主要优势就是定制 和扩展能力。下面几个组件可以被定制实现, Renderer —用户可以自己实现对一个媒体类型的渲染,如果这种类 型默认不被支持,比如软解码 TrackSelector —实现自定义的track选择策略 LoadControl —实现自己的缓冲策略 MediaSource —实现自定义的MediaSource
Uni tySendMessage (Ini tContext) i ni tContext()
new T extureSurfaceRenderer()
egl Setup() setup() setVi deoSurface(T extureSurfaceRenderer)
Loop OnFrameAvai l abl e()
onSurfaceCreated() mSurfaceT exture = new SurfaceT exture()
setOnFrameAvailableListener() startPlay()
mPlayer.setVideoSurface() mPlayer.play()
Loop onFrameAvailable() requestRender() render()
TrackSelection.Factory videoTrackSelectionFactory = new AdaptiveTrackSelection.Factory(bandwidthMeter); TrackSelector trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory); // 2. Create the player
ExoPlayer使用
2.创建ExoPlayer
// 1. Create a default TrackSelector Handler mainHandler = new Handler();
BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
相关主题
android应用技术简介
凝灰岩的简介及应用
应用电子技术专业简介
文档推荐
云南东川地区昆阳群黑山组凝灰岩锆石SHRIMP_U-Pb年龄及其地层学意义
页数:5
各种岩石图片及说明
页数:24
岩石的种类与介绍
页数:24
岩石的种类与介绍PPT课件
页数:10
旋挖钻在中风化凝灰岩中的应用
页数:4
水泥基本知识简介
页数:80
凝灰岩的简介及应用
页数:3
凝灰岩
页数:4
分子筛分类及应用
页数:7
岩石的种类与介绍ppt课件
页数:24
最新文档
外防护脚手架工程技术交底
期末账项调整与结账.共40页
大学生求职自荐信700字5篇最新
事业单位考试建筑工程、土木工程专业必备
对于小组合作学习的研究和思考
技术交底(墙面乳胶漆)
华南师大附中2018届高三综合测试(一)(英语)
201403柳中月考试卷
【推荐下载】“创业服务年”阶段工作汇报-word范文 (5页)
误工证明 家属误工证明 法院要求标准