毕业设计So Easy:珠穆朗玛FM音频电台APP

news/2024/9/20 6:54:42

目录

1、项目背景

2、系统介绍

2.1、系统概述

2.2、关键技术

2.3、环境配置

3、系统结构设计

3.1、播放器状态结构图

3.2、登录流程结构图

4、系统模块设计

5、系统总体架构

6、接口描述


很多计算机专业大学生经常和我交流:毕业设计没思路、不会做、论文不会写、太难了......

针对这些问题,决定分享一些软、硬件项目的设计思路和实施方法,希望可以帮助大家,也祝愿各位学子,顺利毕业!

项目专栏:https://blog.csdn.net/m0_38106923/category_11085518.html 


APP体验安装包下载:https://download.csdn.net/download/m0_38106923/19322068

1、项目背景

在移动互联网迅猛发展的大背景下,音频作为伴随性媒体能够最大化地利用用户的日常碎片化时间,较其他听书APP和传统电台,喜马拉雅FM能够脱颖而出,正是因为它精准的目标用户定位,做好目标受众细分,创新节目内容,优化节目形式,满足消费者的需求,并利用网络营销,保存现有优势,快速抢占市场份额。

2、系统介绍

2.1、系统概述

珠穆朗玛FM是一款仿照喜马拉雅(音频分享平台)APP所开发的音频分享电台APP,该应用充分实现喜马拉雅APP的诸多重要功能,如在线专辑展示、电台展示及播放、音频下载、音频录制、音频分享等功能,通过对以上多种功能的设计对互联网中音频的分享与声音服务有了更深层的认识。

2.2、关键技术

本项目采用retrofit+rxjava2+rxandroid+arouter+mvvm+fragmentation实现单activity多fragme组件化架构。

  • Retrofit:Retrofit是现下Android端开发非常流行的一款网络请求框架,它通过动态代理的方式将Java接口翻译成网络请求,通过OkHttp发送请求,并且其具备强大的可扩展性,支持各种数据格式的转换以及RxJava。
  • Rxjava2:一个在Java VM 上使用可观测的序列来组成异步的,基于事件的程序的库。
  • Rxandroid:是RxJava针对Android平台的一个扩展,用于Android开发提供响应式扩展组件快速、易于开发Android应用程序。
  • Arouter:ARouter是阿里开源的一款android路由框架。通过路由进行界面跳转,区别于 Intent的显隐式跳转。在模块化的项目中,友好的解决了因模块互相依赖冲突,而界面互相跳转不了的问题,使用ARouter进行跳转,两个 library互相不依赖,也可以相互跳转。
  • Mvvm:MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。
  • Fragmentation:Fragmentation非常适合一个Activity管理多个fragment。
  • 组件化:组件化是指解耦复杂系统时将多个功能模块拆分、重组的过程,有多种属性、状态反映其内部特性。

2.3、环境配置

开发环境:Windows 10及以上,Android studio 4.1.2

运行环境:Android 8.0 及以上,JDK 1.8,SDK 21及以上

网络环境:Internet ,Wi-Fi

3、系统结构设计

3.1、播放器状态结构图

 

3.2、登录流程结构图

4、系统模块设计

此APP共分为5个模块:“我的”模块、首页模块、历史记录模块、播放模块、发现模块。

  • “我的”模块:负责APP的登录注册、登录登出及分享操作;
  • 首页模块:分类展示、音频搜索、音频展示;
  • 历史记录模块:订阅内容与推荐订阅、已下载、播放历史、已购买的音频、喜欢的音频;
  • 播放模块:热门播放的内容展示、专辑展示;
  • 发现模块:付费内容、全面朗读、活动、商城等待开发。

5、系统总体架构

6、接口描述

喜马拉雅开放平台标准授权登录流程采用OAuth2标准授权码(authorization code)模式。授权码模式(authorization code)是功能最完整、流程最严密的授权模式。它的特点就是通过第三方客户端的后台服务器,与我们的oauth2认证服务器进行互动。总体来说先进行用户登录,再进行用户授权。

注意:这种授权模式不会存储任何私钥在客户端(或浏览器端)。

这种授权模式的流程示意图如下所示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pgtn.cn/news/18632.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

机器学习中的数学基础:(1)实际应用中矩阵特征值与特征向量的几何意义

关于特征值、特征向量的讲解有很多的教程,对于这些枯燥的数学基础怎么运用到自己的实际计算机视觉实验中,是一项很重要的任务。算法的底层其实就是数学公式的各种结合与推导,有时间不是我们不能很好的去理解这些算法基础,而是没有…

JAVA电影购票系统

一、功能描述 电影购票系统简介、项目功能演示 日志框架搭建、系统角色分析 首页设计、登录、商家界面、用户界面实现 商家-详情页设计、影片上架、退出 商家-影片下架、影片修改 用户-展示全部影片 用户-购票功能 用户-评分功能 用户-评分降序展示 用户-根据片名查询全部影片信…

和12岁小同志搞创客开发:如何驱动各类型传感器?

目录 1、数字量输出类型传感器 2、数字量输入类型传感器 3、模拟量电压类型传感器 4、模拟量电流类型传感器 5、协议类型传感器 机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。 项目专栏:https://blog.csdn.net/m0_3810…

机器学习中的数学基础:(3)主成分分析(PCA)及其应用

主成分分析主要用于数据的降维?什么是降维? 比如说有如下的房价数据: 这种一维数据可以直接放在实数轴上: 房价样本数据用X表示,则以上数据的均值为: 以均值为原点: 将上述表格以均值&#xf…

opencv特征匹配中match与KnnMatch返回数据类型

1、match # 初始化 BFMatcherbf cv.BFMatcher()# 对描述子进行匹配# des1/des2分别是两幅图片特征点的特征向量matches bf.match(des1, des2)# 打印match返回数据的类型print(type(matches[0])) match匹配的返回结果是DMatch类型。 DMatch数据结构包含三个非常重要的数据分别…

和12岁小同志搞创客开发:Mind+编程软件简介、安装及使用

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。 ​项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 本期本打算写一篇关于Mind编程软件安装和基础操作的详细博文,奈何官网说明文档非常详实…

毕业设计So Easy:基于Java Web学生选课系统

目录 1、选题背景 2、选课系统分析与设计 2.1、系统功能说明 2.2、总体功能结构 很多计算机专业大学生经常和我交流:毕业设计没思路、不会做、论文不会写、太难了...... 针对这些问题,决定分享一些软、硬件项目的设计思路和实施方法,希望…

机器学习中的数学基础:(2)矩阵的奇异值分解(SVD)及其应用

在机器学习领域,有相当多的应用与奇异值都可以扯上关系,比如做feature reduction的PCA,做数据压缩(以图像压缩为代表)的算法,还有做搜索引擎语义层次检索的LSI(Latent Semantic Indexing&#x…