ession的接收方为多个地址。
RTP Stream:即RTP流,是指从同一个同步源发出的RTP数据包。
② RTCP实时传输控制协议
RTCP主要是用来在流媒体服务器与流媒体客户端之间传输控制信息的,通过此协议可以控制传输的质量。当进行音/视频数据传输时,RTCP把会跟随RTP会话的进行周期性地发送控制信息,该控制信息主要包括丢包率的统计、已发送数据包数量等[37]。
当进行RTP会话时,程序会自动分配两个端口,一个是为RTP协议传输提供的,而另一个则是为RTCP协议传输提供的。就RTP来说,其不是一个可靠的传输协议,不提供拥塞控制、流量控制。而要保证音/视频信息的可靠传输就要依赖RTCP协议,它提供了流量控制、拥塞控制等服务,当在RTP会话期间,周期性的发送RTCP包,可以监控传输质量、了解会话用户信息等,通过这些信息可以知道已经发送的数据包数量以及丢失的数据包数量等。通过RTP协议与RTCP协议的结合,实现了传输效率的提升,利用非常小的开销实现了传输信息的反馈,非常利于对实时网络传输提供控制、采取恰当的控制策略[38]。
③ RTSP实时流媒体协议
RTSP是一个流媒体表示协议,位于应用层之上,通过此协议可以实现流媒体数据的控制。由于其是一个应用层协议,它本身并不负责数据的传送,其传输数据是靠下层的传输协议,通常情况下,将RTSP与RTP协议一同使用以实现音/视频的实时传输。RTSP协议拥有一套可扩展框架,在音/视频的播放端可实现对音/视频的控制,例如暂停、播放、快进等。RTSP协议是一个有状态的、对称的协议,在进行RTSP数据流请求时,需要保持会话状态,这些特点与HTTP协议很不相同。而除此之外,它与HTTP协议是否相似,可以直接移植HTTP的扩展机制来使用RTSP协议。
2.5 本章小结
本章详细介绍了该流媒体客户端软件开发中所用到的关键技术。首先对Android系统进行了简单的介绍,然后从Android的系统构架、应用程序组成等方面介绍了Android平台及其功能,最后从本文关注的流媒体播放出发,介绍了流媒体技术、视频压缩解码技术和流媒体传输协议。
3 基于Android平台的流媒体客户端软件需求分析
3.1 系统功能概述
该流媒体客户端软件在Android系统上实现,采用流媒体技术、第三代无线通信技术进行实时数据传输,系统的具体功能需求如下:
① 通过Android平台上的流媒体客户端进行音/视频采集。用户可以根据自己
的日常需求,将生活中的点点滴滴以音/视频的方式记录下来,以流媒体的形式实时传送到流媒体服务器。
② 通过Android平台上的流媒体客户端进行音/视频播放。用户可以实时地获
取音/视频信息,并在客户端观看。实现了随时随地观看各大赛事、新闻、娱乐节目的需求。
本系统可以分为两个子系统:音/视频采集子系统和音/视频播放子系统。本人的工作主要是设计并实现流媒体客户端音/视频播放子系统。因此,下面将详细分析音/视频播放子系统的功能需求:
① 数据接收功能:主要用于接收来自流媒体服务器的音/视频数据。
② RTP解析功能:主要用于解析从网络接收来的音/视频数据,该数据是由
RTP封装的,因此需要进行RTP解析。
③ 解码功能:经过RTP解析后的音/视频数据还不能直接在客户端播放,要
想客户端顺利的播放音/视频数据,还需要对音/视频数据进行解码,使音/视频数据符合播放的条件。
④ 播放功能:在进行音/视频解码后,就可以运用播放技术,播放音/视频文
件。
3.2 系统用例分析
该流媒体客户端软件主要分为音/视频采集子系统和音/视频播放子系统,系统整体的模块结构如图3.1所示。
图3.1 系统功能模块结构
Fig. 3.1 The function module structure of the system
音/视频播放子系统又包括音/视频播放模块和扩展模块,其功能结构如图3.2所示。
音/视频播放模块:主要负责音/视频的播放与控制,包括暂停、播放、停止、快进等选项。该模块主要包括数据接收子模块、数据预处理模块子和解码播放子模块。
扩展模块:该模块为流媒体客户端软件的扩展模块,主要提供辅助音/视频播放的功能,包含文件列表管理子模块、播放列表管理子模块和音/视频搜索子模块。
图3.2 音/视播放子系统功能结构
Fig. 3.2 The function structure of audio/video play subsystem
下面将详细分析该软件中音/视频播放子系统和扩展子系统的业务需求,并给出它们的用例分析。音/视频播放子系统的功能用例如图3.3所示。
图3.3 音/视播放子系统功能用例
Fig. 3.3 The function case of audio/video play subsystem
下面将对图3.1中的每个子用例进行说明。
① 音/视频文件播放
该用例主要用来描述选中的音/视频文件是否能够正常的播放。
表3.1 音/视频文件播放用例说明
Table 3.1 Use case instruction to play audio/video's file
描述项目 描述内容 用例名称 音/视频文件播放 用例描述 点击播放按钮 参与者 用户 前置条件 音/视频进入播放状态 后置条件 选中的音/视频播放
② 音/视频暂停用例
该用例主要用于描述当某音/视频文件正在播放时,是否可以点击暂停按钮,并且转变为暂停状态。
表3.2 音/视频文件播放用例说明
Table 3.2 Use case instruction to pause audio/video's file
描述项目 描述内容 用例名称 音/视频暂停 用例描述 当音/视频正在播放时,点击暂停按钮 参与者 用户 前置条件 视频正在播放 后置条件 播放视频处于暂停状态
③ 音/视频停止用例
该用例主要用于描述当某音/视频文件正在播放或者暂停时,是否可以点击停止按钮,并且转变为停止状态。
表3.3 音/视频文件播放用例说明
Table 3.3 Use case instruction to stop audio/video's file
描述项目 描述内容 用例名称 视频停止 用例描述 当音/视频文件处于播放状态或者暂停状态时,点击停止按钮 参与者 用户 前置条件 音/视频处于正常播放状态,或暂停状态 后置条件 音/视频停止播放
④ 视频全屏/普屏用例
该用例主要用于描述当某音/视频文件正在播放或暂停时,双击屏幕是否可以实现全屏状态与普屏状态的切换。
表3.4 视屏全屏/普屏用例说明
Table 3.4 Use case instruction of full screen/general screen
描述项目 描述内容 用例名称 视频全屏/普屏 用例描述 当视频文件处于播放或暂停状态时,双击屏幕。若原来为全屏,则双击后变为普屏,若原来为普屏,双击后变为全屏 参与者 用户 前置条件 视频处于播放或暂停状态 后置条件 当前视频从全屏变为普屏,或从普屏变为全屏
⑤ 音/视频上一个/下一个用例
该用例主要用于描述当指定音/视频文件正在播放时,是否可以点击上一个/下一个按钮,将当前音/视频切换为上一个/下一个音/视频播放。
表3.5 音/视频文件播放用例说明
Table 3.5 Use case instruction to last/next audio/video's file
描述项目 描述内容 用例名称 上一个/下一个 用例描述 用户点击上一个或下一个按钮,音/视频文件可以在上一个或下一个之间切换,并播放 参与者 用户 前置条件 用户进入播放界面,并已选中一个播放 后置条件 上一个或下一个音/视频播放
对于音/视频播放子系统来说,还需显示文件列表、播放列表、提供智能搜索等模块以辅助其功能。下面将给出扩展子系统的需求用例,如图3.4所示。
图3.4 扩展子系统功能用例
Fig. 3.4 The function case of expanding subsystem
下面将对图3.2中的每个子用例进行说明。
① 文件列表管理
该用例主要用于描述当选择查看文件列表时,点击本地文件列表选项是否正
上一篇:
基于Android平台的手机电子书阅读器设计
下一篇:
试论APP广告在手机中的应用