基于android的流媒体播放器开发.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
引言 随着移动通信技术和多媒体技术的迅速发展,融合手机、网络、多媒体技术为一体的视频监控技术也有了长足的进步,通过移动通信网络提供流媒体服务已经成为可能。全球移动用户数量非常庞大,因此移动流媒体服务具有巨大的市场潜力,也正成为移动业务的研究热点之一。在这一背景下,针对移动网络和移动终端的特点,提出移动流媒体的创新方案很有现实意义。 本项目结合Android手机操作系统,提出了移动终端流媒体播放器基于分层体系架构的共享播放设计方案。该设计的特点是使得手持终端的人们之间能够实时分享播放视频,并且提供了对外部流媒体服务器的接收功能,最终在Android平台上实现该播放器。 播放器整体设计方案 播放器无论播放本地文件或是网络流媒体文件,都需要有获取媒体数据,解码音视频媒体流,将解码后的媒体数据显示给用户三个处理阶段。根据文件播放的流程中这三个明显的处理阶段,我们的设计基于层次的播放器结构。 由于本地文件和网络流媒体文件的数据获取方式是不相同的,若要保持上层解码的一致性,需要对两类文件进行预处理,形成相同格式的数据提供给上层解码。根据以上特性,结合文件解码流程本文中面向实时监控的播放器设计采用分层结构,每层独立完成任务,使系统的耦合度降低,利于各层独立扩展而不影响上下层的应用。从下至上依次是数据提取层、数据预处理层、音视频解码层和用户界面。 用户界面 用户界面 音视频解码层 数据预处理层 数据提取层 每层实现的功能如下:。 (1)用户界面层主要提供用户和播放器之间的交互接口,如播放本地文件时可以实现暂停、快进、快退等功能,在观看流媒体文件时可以通过数字键、导航键或者播放器上方向按钮控制摄像头的焦距、方向等信息。 (2)音视频解码层主要有解码选择组件、各种主流音视频格式的解码器和多路媒体流之间同步的功能。解码选择组件从本地文件或者流媒体文件头中获取到媒体的解码格式信息,根据该格式信息选择相应的解码器对压缩后的媒体流进行解码。多路媒体之间同步包括视频流和音频流的同步,在播放本地文件时可能还需要字幕的同步。 (3)数据预处理层对本地文件按照其媒体格式解封装,获取文件的音视频或字幕等信息并将其按帧放入相应上层待解码缓冲区。对流媒体文件将去除RTP的包头信息,并将RTP中音视频信息组帧,将完整的数据帧传给上层待解码缓冲区。而封装控制信息组件按照PELCO-D/P协议规定的文本格式封装用户的控制输入,并将控制信息传递给下层。 (4)数据获取层的功能包括本地文件、流媒体文件的获取和摄像头控制信息的发送,前者只需读取本地文件即可,流媒体文件的获取需要从流媒体服务器获取媒体数据信息。流媒体文件获取部分包括前期会话协商部分、数据发送部分和数据缓冲部分。其中媒体信息协商部分需要使用RTSP协议协商媒体流常规信息,如媒体类型(视频和音频)、传输协议(RTP/UDP/IP…)和媒体格式(H263、mpeg…)和媒体传输端口等信息。 我们的播放器除了实现普通的播放器功能之外,也能将自身变成流媒体服务器,负责转发本地视频或网络流媒体,让周围的终端能实时分享同步播放相应的视频。播放器主要有三大接口。。。 Android系统架构中的多媒体 上图是Android系统架构图,自低向上都能看见多媒体相关的组件包括多媒体Driver、多媒体Native库、多媒体框架层,多媒体应用等。 多媒体Driver 负责和硬件进行交互数据包括Audio Driver, Camera Driver,Display Driver等等,与其他Linux版本的Driver 类似 多媒体Native库 通常称之为OpenCore,它是Anroid多媒体的核心,来源于PacketVideo。对比Android的其它程序库,OpenCore的代码非常庞大,它是一个基于C++的实现,定义了全功能的操作系统移植层,各种基本的功能均被封装成类的形式,各层次之间的接口多使用继承等方式。 OpenCore是一个多媒体的框架,它主要包含了两大方面的内容: PVPlayer:提供媒体播放器的功能,完成各种音频(Audio)、视频(Video)流的回放(Playback)功能 PVAuthor:提供媒体流记录的功能,完成各种音频(Audio)、视频(Video)流的以及静态图像捕获功能 在实际多媒体应用的开发中我们并不会过多的研究OpenCore的实现。Android中提供了上层(Java 层)的Media API给开发人员使用,MediaPlayer和MediaRecorder。 多媒体框架层 多媒体框架层Android中间层,也是Java SDK层。向下通过JNI负责封装OpenCore,向上负责为多媒体应用程序提供Java接口。所有的多媒体相关的类和接口都包含在android.media这个package当

文档评论(0)

小教资源库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档