论文部分内容阅读
随着互联网技术的迅猛发展,网络直播带来的便捷性、互动性等特点给观众带来了全新的用户体验,网络直播已经成为了当今社会一种社交媒体模式。在网络直播飞速发展的今天,移动端具有互动性好和移动性强等特点,移动直播软件能够为网络直播平台带来巨大的流量和收益。而当前移动直播软件存在代码结构不够清晰,手势操作不够丰富以及弹幕渲染性能不佳的问题,本论文从解决上述问题出发,设计并实现了基于RxJava技术的视频直播软件。本文首先从需求分析入手,讨论了视频直播软件的需求,确定了整个软件的主要功能,然后引出了视频直播软件的总体设计,包含了基本设计原则以及根据MVP(Model-View-Presenter)架构模式设计了整个软件的层次结构。整个项目分为两层,分别是业务层和通用功能层,业务层包括了直播展示模块、互动模块和个人管理模块,直播展示模块主要负责直播列表的展示、直播节目的播放、直播页面的控制面板等;互动模块主要负责弹幕与礼物的实现,其中包含了与服务器的Socket通信过程;而个人管理模块则包含了注册登录、充值功能、个人资料管理等。通用功能层包括了网络模块与存储模块,网络模块负责通用的HTTP通信,而存储模块负责本地数据的存取。本文根据项目的具体需求,利用RxJava技术处理异步数据性能佳的优点,设计并实现了一个Android平台上的视频直播软件。除了实现市面上移动直播软件的直播播放、互动等常见功能外,本论文还加入了更多的手势操作来提升用户体验,比如通过手势滑动对直播过程中的音量大小、屏幕亮度进行调节等。本论文还对网络状态进行实时监测,尽量消除由于网络不稳定给用户带来的流量损耗等问题。除此之外,本论文选取当前市场上较好的弹幕实现方式,并在实现的过程中提出了基于缓存池的弹幕优化方案,降低了弹幕渲染过程中的CPU使用率,使CPU使用率基本稳定在5%以下,提升了软件性能。