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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1.引言随着移动通信技术和多媒体技术的迅速发展,融合手机、网络、多媒体技术为一体的视频监控技术也有了长足的进步,通过移动通信网络提供流媒体服务已经成为可能。全球移动用户数量非常庞大,因此移动流媒体服务具有巨大的市场潜力,也正成为移动业务的研究热点之一。在这一背景下,针对移动网络和移动终端的特点,提出移动流媒体的创新方案很有现实意义。本项目结合Android手机操作系统,提出了移动终端流媒体播放器基于分层体系架构的共享播放设计方案。该设计的特点是使得手持终端的人们之间能够实时分享播放视频,并且提供了对外部流媒体服务器的接收功能,最终在Android平台上实现该播放器。2.播放器整体设计方案播放器无论播放本地文件或是网络流媒体文件,都需要有获取媒体数据,解码音视频媒体流,将解码后的媒体数据显示给用户三个处理阶段。根据文件播放的流程中这三个明显的处理阶段,我们的设计基于层次的播放器结构。由于本地文件和网络流媒体文件的数据获取方式是不相同的,若要保持上层解码的一致性,需要对两类文件进行预处理,形成相同格式的数据提供给上层解码。根据以上特性,结合文件解码流程本文中面向实时监控的播放器设计采用分层结构,每层独立完成任务,使系统的耦合度降低,利于各层独立扩展而不影响上下层的应用。从下至上依次是数据提取层、数据预处理层、音视频解码层和用户界面。每层实现的功能如下:。(1)用户界面层主要提供用户和播放器之间的交互接口,如播放本地文件时可以实现暂停、快进、快退等功能,在观看流媒体文件时可以通过数字键、导航键或者播放器上方向按钮控制摄像头的焦距、方向等信息。(2)音视频解码层主要有解码选择组件、各种主流音视频格式的解码器和多路媒体流之间同步的功能。解码选择组件从本地文件或者流媒体文件头中获取到媒体的解码格式信息,根据该格式信息选择相应的解码器对压缩后的媒体流进行解码。多路媒体之间同步包括视频流和音频流的同步,在播放本地文件时可能还需要字幕的同步。用户界面音视频解码层数据预处理层数据提取层(3)数据预处理层对本地文件按照其媒体格式解封装,获取文件的音视频或字幕等信息并将其按帧放入相应上层待解码缓冲区。对流媒体文件将去除RTP的包头信息,并将RTP中音视频信息组帧,将完整的数据帧传给上层待解码缓冲区。而封装控制信息组件按照PELCO-D/P协议规定的文本格式封装用户的控制输入,并将控制信息传递给下层。(4)数据获取层的功能包括本地文件、流媒体文件的获取和摄像头控制信息的发送,前者只需读取本地文件即可,流媒体文件的获取需要从流媒体服务器获取媒体数据信息。流媒体文件获取部分包括前期会话协商部分、数据发送部分和数据缓冲部分。其中媒体信息协商部分需要使用RTSP协议协商媒体流常规信息,如媒体类型(视频和音频)、传输协议(RTP/UDP/IP…)和媒体格式(H263、mpeg…)和媒体传输端口等信息。我们的播放器除了实现普通的播放器功能之外,也能将自身变成流媒体服务器,负责转发本地视频或网络流媒体,让周围的终端能实时分享同步播放相应的视频。播放器主要有三大接口。。。3.Android系统架构中的多媒体上图是Android系统架构图,自低向上都能看见多媒体相关的组件包括多媒体Driver、多媒体Native库、多媒体框架层,多媒体应用等。多媒体Driver负责和硬件进行交互数据包括AudioDriver,CameraDriver,DisplayDriver等等,与其他Linux版本的Driver类似多媒体Native库通常称之为OpenCore,它是Anroid多媒体的核心,来源于PacketVideo。对比Android的其它程序库,OpenCore的代码非常庞大,它是一个基于C++的实现,定义了全功能的操作系统移植层,各种基本的功能均被封装成类的形式,各层次之间的接口多使用继承等方式。OpenCore是一个多媒体的框架,它主要包含了两大方面的内容:PVPlayer:提供媒体播放器的功能,完成各种音频(Audio)、视频(Video)流的回放(Playback)功能PVAuthor:提供媒体流记录的功能,完成各种音频(Audio)、视频(Video)流的以及静态图像捕获功能在实际多媒体应用的开发中我们并不会过多的研究OpenCore的实现。Android中提供了上层(Java层)的MediaAPI给开发人员使用,MediaPlayer和MediaRecorder。多媒体框架层多媒体框架层Android中间层,也是JavaSDK层。向下通过JNI负责封装OpenCore,向上负责为多媒体应用程序提供Java接口。所有的多媒体相关的类和接口都包含在android.media这个package当中,包括AudioFormat,AudioManager,AudioTrack,MediaPlayer,MediaRecorder,Ringtone,RingtoneManager等等。其中MediaPlayer和MediaRecorder是最为主要的两个类。MediaPlayer主要接口:提供了一个多媒体播放器常用的基本操作如播放,暂停,停止,获取文件播放长度,Seek等等。MediaRecorder主要接口提供了声音录制的基本功能。多媒体应用多媒体应用层处在整个多媒体结构中最上层,全部由纯Java应用程序构成。Android系统本身就内置了丰富的多媒体应用程序包括MusicPlayback,Camera,PictureViewer等等。Audio/Video播放在android系统中的实际调用过程如下:4.技术相关(1)AndroidLayout讲述Android中的布局用法(2)AndroidActivity(3)AndroidIntentIntent传递数据和启动其他Activity(4)AndroidServiceService后台服务进程(5)AndroidSQLite数据库(6)AndroidContentProvide(7)本地视频的流化(8)视频转发

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功