基于android的小说系统(有声听书)

 博主介绍:本人专注于Android/java/数据库/微信小程序技术领域的开发,以及有好几年的计算机毕业设计方面的实战开发经验和技术积累;尤其是在安卓(Android)的app的开发和微信小程序的开发,很是熟悉和了解;本人也是多年的Android开发人员;希望我发布的此篇文件可以帮助到您;

🍅文章末尾获取源码下载方式🍅

源码下载

https://download.csdn.net/download/u014388322/88524623

功能演示

详情演示视频请文字末尾公众号咨询,我会发给您;

1:后台演示

2:客户端演示

一、项目介绍

1:注册登录:

未注册用户首先进行账号注册,注册成功后进行登录,已注册用户直接输入账号密码进行登录,登录成功后进入主页面。

2:主页面:

通过左右滑动可以实现对推荐界面、订阅界面、历史界面的切换,推荐界面通过上下滑动加载出更多内容,下方为播放控制部分,播放控制部分三个主界面通用。点击推荐界面的某一个读物内容,可以跳转到该内容的详情页面。

3:详情页面:

下拉刷新,上拉加载更多,上方放置该读物的图片,图片右侧有订阅按钮,图片下方显示播放按钮,点击切换播放状态,播放状态为播放时按钮右侧显示标题内容并实现跑马灯效果,下面展示该专辑的具体列表,用户可以选择想要听取的内容,点击列表里喜欢的片段即进入播放器页面,进行收听。

4:播放器页面:

上方进行标题的显示,中间部分显示当前节目图片并实现播放器页面图片联动,对图片进行左右滑动可对播放内容进行切换,图片下方实时显示文字,最下方显示播放进度条,可以对播放进度条进行拖拽,显示总播放时长和当前时间的更新,并实现开始播放、暂停播放,上一首,下一首播放内容的切换。对播放模式进行设置包括列表循环,随机播放,单曲循环三种模式,并且再次进入播放页面使播放模式保持上次选择。点击播放列表按钮,实现播放列表弹出,显示节目列表内容并可以对列表显示顺序进行切换,即顺序、逆序,点击列表下方关闭按钮,实现对播放列表的关闭。

5:在主界面点击搜索按钮,进入搜索页面,输入关键词进行搜索,并进行联想词推荐,下方显示推荐搜索热词,点击搜索热词可以直接进行搜索。

二、运行环境

1:客户端使用Android stuido进行开发;
2:服务端后台使用Myeclipse2014进行开发;
3:mysql数据库进行数据存储;
4:需要jdk1.7以上
5:使用雷电模拟器或者Androidstuio自带的模拟器进行运行

三、使用技术

总体设计逻辑和思路:
1:先设计数据库表文件
2:写服务端jsp页面以及写api接口给客户端提供数据
3:完成后台服务端的数据交互,也就是jsp页面数据的存储和显示
4:进行客户端页面的开发;
5:进行客户端对api接口的调用,也就是获取数据库的数据以及在客户端进行显示

移动端:
1:使用android原生控件以及xml布局文件来完成界面的显示
2:使用java代码完成功能的数据和逻辑交互
3:使用http网络请求完成数据的请求;
4:使用json数据解析完成客户端数据的回调和显示

服务端后台:
1:使用mysql完成数据的存储
2:使用jdbc完成数据库和代码的逻辑交互
3:使用jsp完成网页数据的显示
4:使用java代码完成api接口的编写以及以及数据的回调

四、数据库设计

/*
Navicat MySQL Data Transfer

Source Server         : mydata
Source Server Version : 50528
Source Host           : localhost:3306
Source Database       : musicbookdb

Target Server Type    : MYSQL
Target Server Version : 50528
File Encoding         : 65001

Date: 2020-12-23 09:53:33
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for albumtb
-- ----------------------------
DROP TABLE IF EXISTS `albumtb`;
CREATE TABLE `albumtb` (
  `albumId` int(11) NOT NULL AUTO_INCREMENT,
  `albumTypeId` int(11) DEFAULT NULL,
  `albumTypeName` varchar(255) DEFAULT NULL,
  `albumName` varchar(255) DEFAULT NULL,
  `albumInfor` varchar(255) DEFAULT NULL,
  `albumImg` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`albumId`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of albumtb
-- ----------------------------
INSERT INTO `albumtb` VALUES ('1', '29', '小说', '凡人修仙传', '凡人修仙传凡人修仙传', 'icon_sp_3.png');
INSERT INTO `albumtb` VALUES ('2', '27', '文学', '盗墓笔记', '盗墓笔记盗墓笔记盗墓笔记盗墓笔记', 'icon_sp_2.png');
INSERT INTO `albumtb` VALUES ('3', '27', '文学', '庆余年', '庆余年庆余年庆余年庆余年庆余年', 'fengmian_1.jpg');

-- ----------------------------
-- Table structure for focustb
-- ----------------------------
DROP TABLE IF EXISTS `focustb`;
CREATE TABLE `focustb` (
  `focusId` int(11) NOT NULL AUTO_INCREMENT,
  `focusMessageId` int(11) DEFAULT NULL,
  `focusUserId` int(11) DEFAULT NULL,
  PRIMARY KEY (`focusId`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of focustb
-- ----------------------------
INSERT INTO `focustb` VALUES ('10', '2', '8');
INSERT INTO `focustb` VALUES ('11', '1', '8');
INSERT INTO `focustb` VALUES ('12', '3', '8');

-- ----------------------------
-- Table structure for hottb
-- ----------------------------
DROP TABLE IF EXISTS `hottb`;
CREATE TABLE `hottb` (
  `hotId` int(11) NOT NULL AUTO_INCREMENT,
  `hotInfor` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`hotId`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of hottb
-- ----------------------------
INSERT INTO `hottb` VALUES ('1', '周杰伦');
INSERT INTO `hottb` VALUES ('2', '鸡你太美');
INSERT INTO `hottb` VALUES ('3', '马老师');
INSERT INTO `hottb` VALUES ('4', '背带裤打篮球');
INSERT INTO `hottb` VALUES ('5', '冬至');

-- ----------------------------
-- Table structure for musicmsg
-- ----------------------------
DROP TABLE IF EXISTS `musicmsg`;
CREATE TABLE `musicmsg` (
  `musicId` int(50) NOT NULL AUTO_INCREMENT,
  `musiczjId` varchar(11) DEFAULT NULL,
  `musicTitle` varchar(100) NOT NULL,
  `musicImage` varchar(500) NOT NULL,
  `musicFile` varchar(500) DEFAULT NULL,
  `musicSize` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`musicId`)
) ENGINE=InnoDB AUTO_INCREMENT=86 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of musicmsg
-- ----------------------------
INSERT INTO `musicmsg` VALUES ('66', '2', '许嵩 - 玫瑰花的葬礼', 'book_fengmian_1.jpg', 'music1.mp3', '04:18');
INSERT INTO `musicmsg` VALUES ('67', '2', '许巍 - 第三极', 'book_fengmian_2.jpg', 'music2.mp3', '03:46');
INSERT INTO `musicmsg` VALUES ('68', '2', 'Star Sky', 'book_fengmian_3.jpg', 'music3.mp3', '05:30');
INSERT INTO `musicmsg` VALUES ('69', '2', '轻音乐一', 'book_fengmian_4.jpg', 'Bandarimc1.mp3', '05:45');
INSERT INTO `musicmsg` VALUES ('74', '1', '一直很安静', 'book_fengmian_5.jpg', 'quiet.mp3', '04:07');
INSERT INTO `musicmsg` VALUES ('75', '1', '轻音乐二', 'book_fengmian_6.jpg', 'quiet.mp3', '04:07');
INSERT INTO `musicmsg` VALUES ('76', '1', '许巍第三级新歌曲', 'book_fengmian_1.jpg', 'disanji.mp3', '03:46');
INSERT INTO `musicmsg` VALUES ('83', '1', '篆刻起源', 'book_fengmian_2.jpg', 'music3.mp3', '5:32');
INSERT INTO `musicmsg` VALUES ('84', '3', '第一集', 'fengmian_2.jpg', 'music2.mp3', '3:47');
INSERT INTO `musicmsg` VALUES ('85', '3', '第二集', 'fengmian_3.jpg', 'music3.mp3', '5:32');

-- ----------------------------
-- Table structure for recordtb
-- ----------------------------
DROP TABLE IF EXISTS `recordtb`;
CREATE TABLE `recordtb` (
  `recordId` int(11) NOT NULL AUTO_INCREMENT,
  `recordMusicId` int(11) DEFAULT NULL,
  `recordUserId` int(11) DEFAULT NULL,
  PRIMARY KEY (`recordId`)
) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of recordtb
-- ----------------------------
INSERT INTO `recordtb` VALUES ('1', '69', '8');
INSERT INTO `recordtb` VALUES ('2', '68', '8');
INSERT INTO `recordtb` VALUES ('3', '74', '8');
INSERT INTO `recordtb` VALUES ('4', '75', '8');
INSERT INTO `recordtb` VALUES ('5', '76', '8');
INSERT INTO `recordtb` VALUES ('6', '83', '8');
INSERT INTO `recordtb` VALUES ('7', '67', '8');
INSERT INTO `recordtb` VALUES ('8', '69', '8');
INSERT INTO `recordtb` VALUES ('9', '68', '8');
INSERT INTO `recordtb` VALUES ('10', '68', '8');
INSERT INTO `recordtb` VALUES ('11', '68', '8');
INSERT INTO `recordtb` VALUES ('12', '68', '8');
INSERT INTO `recordtb` VALUES ('13', '68', '8');
INSERT INTO `recordtb` VALUES ('14', '68', '8');
INSERT INTO `recordtb` VALUES ('15', '69', '8');
INSERT INTO `recordtb` VALUES ('16', '66', '8');
INSERT INTO `recordtb` VALUES ('17', '66', '8');
INSERT INTO `recordtb` VALUES ('18', '66', '8');
INSERT INTO `recordtb` VALUES ('19', '68', '8');
INSERT INTO `recordtb` VALUES ('20', '69', '8');
INSERT INTO `recordtb` VALUES ('21', '66', '8');
INSERT INTO `recordtb` VALUES ('22', '74', '8');
INSERT INTO `recordtb` VALUES ('23', '68', '8');
INSERT INTO `recordtb` VALUES ('24', '68', '8');
INSERT INTO `recordtb` VALUES ('25', '69', '8');
INSERT INTO `recordtb` VALUES ('26', '68', '8');
INSERT INTO `recordtb` VALUES ('27', '69', '8');
INSERT INTO `recordtb` VALUES ('28', '68', '8');
INSERT INTO `recordtb` VALUES ('29', '68', '8');
INSERT INTO `recordtb` VALUES ('30', '68', '8');
INSERT INTO `recordtb` VALUES ('31', '68', '8');
INSERT INTO `recordtb` VALUES ('32', '68', '8');
INSERT INTO `recordtb` VALUES ('33', '67', '8');
INSERT INTO `recordtb` VALUES ('34', '84', '8');
INSERT INTO `recordtb` VALUES ('35', '68', '8');
INSERT INTO `recordtb` VALUES ('36', '68', '8');
INSERT INTO `recordtb` VALUES ('37', '69', '8');
INSERT INTO `recordtb` VALUES ('38', '68', '8');
INSERT INTO `recordtb` VALUES ('39', '67', '8');

-- ----------------------------
-- Table structure for typemsg
-- ----------------------------
DROP TABLE IF EXISTS `typemsg`;
CREATE TABLE `typemsg` (
  `typeId` int(50) NOT NULL AUTO_INCREMENT,
  `typeName` varchar(255) DEFAULT NULL,
  `typeTime` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`typeId`)
) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of typemsg
-- ----------------------------
INSERT INTO `typemsg` VALUES ('27', '文学', '2020-12-22 17:18');
INSERT INTO `typemsg` VALUES ('28', '商业', '2020-12-22 17:18');
INSERT INTO `typemsg` VALUES ('29', '小说', '2020-12-22 17:18');
INSERT INTO `typemsg` VALUES ('30', '小品', '2020-12-22 17:18');

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `uid` int(50) NOT NULL AUTO_INCREMENT,
  `uname` varchar(100) NOT NULL,
  `uphone` varchar(100) NOT NULL,
  `upswd` varchar(100) NOT NULL,
  `utime` varchar(100) NOT NULL,
  PRIMARY KEY (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('8', 'pony', '15249243002', '123456', '2020-12-22 17:18');

五、部分代码

七、源码下载

大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取联系方式👇🏻👇🏻👇🏻

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Android 有声绘本开发是指开发适用于Android系统的绘本应用程序,通过添加声音和音效来增强用户对绘本的阅读体验。 Android 有声绘本开发有以下几个方面的要点: 首先,需借助于Android开发平台和相关的工具和语言,如JavaAndroid Studio等。使用Java语言编写代码,通过Android Studio进行开发和调试,构建具有良好用户界面的应用程序。 其次,有声绘本开发需要有良好的绘本资源和音频资源。可以利用各种绘本素材和插图来构建绘本页面,通过添加适当的声音和音效来增加趣味性和吸引力,让用户更好地理解故事情节。 另外,还可以为用户提供一些交互功能,使他们能够与绘本进行互动。例如,通过点击动画或单词,触发相关声音或解释,帮助用户更好地理解故事内容。 此外,对于有声绘本开发,需要关注用户体验和界面设计。应该确保应用界面简洁直观,易于操作,并具有良好的可用性。同时,还要考虑适应不同屏幕尺寸和分辨率的设备,以及不同年龄段和语言背景的用户需求。 最后,需要进行测试和优化,确保应用程序的稳定性和流畅性。通过测试,修复bug并进行性能优化,以提供更好的用户体验。 综上所述,Android有声绘本开发需要综合利用Android开发工具和语言、绘本资源、音频资源以及界面设计等多个方面的知识和技巧。只有综合考虑这些要点,才能开发出具有良好用户体验的有声绘本应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Android毕业设计源码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值