【开发一个简单的音乐播放器+服务端】【一】

简介: 【开发一个简单的音乐播放器+服务端】【一】

实现效果:服务端上传音乐文件并保存音乐信息到数据库,移动端音乐播放器查看所有上传的音乐文件并选择播放

实现一个播放器的基本功能(上一首,播放,暂停,下一首)

首先先来建立个存放音乐的数据库mymusic

建立一张music表来存放音乐,数据表有三个字段

mid:音乐id

musicname:音乐名称

author:创作者

接着就是服务端了,服务端是用SpringMVC+MyBatis写的,很简单的一个服务器,其实什么框架不是重点,重点是实现功能。。。

在配置好Spring和MyBatis的各种配置后,先来写一个控制器用于上传文件

这里我就直接贴代码了:

@Controller
public class UploadServlet {
   
   
    MusicService musicService = new MusicImpl();
    @RequestMapping(value="/showupload",method={
   
   RequestMethod.GET,RequestMethod.POST})
    public String showUpload()
    {
   
   
        return "upload";
    }

    @RequestMapping("/upload")
    public String Upload(@RequestParam("file")CommonsMultipartFile file,String author,
            HttpServletRequest request,Model model)
    {
   
   
        String Syspath = request.getServletContext().getRealPath("/upload");
        File path = new File(Syspath); 
        if(!path.exists())
        {
   
   
            path.mkdirs();
        }
        String fileName = file.getOriginalFilename();
        try {
   
   
            InputStream is = file.getInputStream();
            String destfile = Syspath+"/"+fileName;
            Files.copy(is, Paths.get(destfile));

            //数据库插入数据
            musicService.AddMusic(fileName, author);

            model.addAttribute("rs","上传成功,上传路径:"+destfile+"||数据库添加成功");
        } catch (Exception e) {
   
   
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return "result";
    }
}

这里面的MusicService musicService = new MusicImpl();是一个业务类的实现接口,用于上传文件成功后添加音乐信息到数据库

/showupload请求映射用于显示上传文件的界面,新建一个jsp文件显示视图

/upload请求映射用来接收上传的文件

接收到文件后获取项目部署路径与文件名拼接为文件真实路径保存

下面是jsp文件代码:

比较简单,一个type为file的input用于选择提交的音乐文件,一个type为text的input用于提交创作者姓名

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="text" name="author" />
<input type="submit" />
</form>
</body>
</html>

上传文件部分完成了,下面再来写一个接口用来提供已经上传的所有音乐信息

Music实体类:

public class Music {
   
   
    int mid;
    String musicname;
    String author;
    public int getMid() {
   
   
        return mid;
    }
    public void setMid(int mid) {
   
   
        this.mid = mid;
    }
    public String getMusicname() {
   
   
        return musicname;
    }
    public void setMusicname(String musicname) {
   
   
        this.musicname = musicname;
    }
    public String getAuthor() {
   
   
        return author;
    }
    public void setAuthor(String author) {
   
   
        this.author = author;
    }
}

获取所有音乐信息接口:

@Controller
public class MusicServlet {
   
   
    MusicService musicService = new MusicImpl();
    @RequestMapping(value="/getmusic",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public String getmusic(Model model)
    {
   
   
        List<Music> musics = musicService.GetAll();
        Gson gson = new Gson();
        String rs = gson.toJson(musics);
        return rs;
    }
}

json格式数据打印结果:

随便添加了几首歌曲测试一下

image.png

相关文章
|
数据采集 XML JSON
获取携程网站上指定景点的用户评论数据
获取携程网站上指定景点的用户评论数据
1035 0
|
Android开发
android Compose中沉浸式设计、导航栏、状态栏的处理
android Compose中沉浸式设计、导航栏、状态栏的处理
2665 0
android Compose中沉浸式设计、导航栏、状态栏的处理
|
11月前
|
JSON 移动开发 数据格式
html5+css3+js移动端带歌词音乐播放器代码
音乐播放器特效是一款html5+css3+js制作的手机移动端音乐播放器代码,带歌词显示。包括支持单曲循环,歌词显示,歌曲搜索,音量控制,列表循环等功能。利用json获取音乐歌单和歌词,基于html5 audio属性手机音乐播放器代码。
328 6
|
7月前
|
消息中间件 架构师 Apache
一本书精通Apache RocketMQ
一本书精通Apache RocketMQ
246 3
|
人工智能 Ubuntu 开发工具
【Ubuntu工具】避坑指南:搞坏一台电脑,终于在Ubuntu系统上成功源码安装了 QT WebEngine 5.15.13
【Ubuntu工具】避坑指南:搞坏一台电脑,终于在Ubuntu系统上成功源码安装了 QT WebEngine 5.15.13
594 0
|
XML 存储 关系型数据库
10分钟手把手教你用Android手撸一个简易的个人记账App(一)
接下来就来讲解,如何从0到1实现一个简易的个人记账系统。
10分钟手把手教你用Android手撸一个简易的个人记账App(一)
|
消息中间件 存储 Go
Golang微服务框架Kratos应用NSQ消息队列
NSQ是一个基于Go语言的分布式实时消息平台,它基于MIT开源协议发布,由bitly公司开源出来的一款简单易用的消息中间件。 NSQ可用于大规模系统中的实时消息服务,并且每天能够处理数亿级别的消息,其设计目标是为在分布式环境下运行的去中心化服务提供一个强大的基础架构。 NSQ具有分布式、去中心化的拓扑结构,该结构具有无单点故障、故障容错、高可用性以及能够保证消息的可靠传递的特征。NSQ非常容易配置和部署,且具有最大的灵活性,支持众多消息协议。
247 1
|
开发工具 Android开发
解决夜神模拟器与Android studio自动断开的问题
解决夜神模拟器与Android studio自动断开的问题
635 1
|
存储 网络协议 网络安全
Flannel dial tcp X.X.X.X i/o timeout报错解决
总的来说,解决这个问题需要对你的网络环境、Flannel配置和etcd服务进行全面的检查和调试。
415 0
|
存储 关系型数据库 MySQL
在MySQL中, 自增主键和UUID作为主键有什么区别?
自增主键和UUID在MySQL中各有优缺点,选择哪种方式作为主键取决于具体的应用场景和需求。例如,在需要高性能插入和查询的场景下,自增主键可能更合适;而在需要保证主键全局唯一性和不可预测性的场景下,UUID可能更合适。
246 0