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

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

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

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

首先先来建立个存放音乐的数据库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

相关文章
|
7月前
使用uniapp实现websocket聊天功能
使用uniapp实现websocket聊天功能
|
Web App开发 安全 网络协议
Qt开发技术:QWebSocket客户端、服务端介绍与开发
Qt开发技术:QWebSocket客户端、服务端介绍与开发
|
1月前
|
API
鸿蒙开发:切换至基于rcp的网络请求
本文的内容主要是把之前基于http封装的库,修改为当前的Remote Communication Kit(远场通信服务),无非就是通信的方式变了,其他都大差不差。
鸿蒙开发:切换至基于rcp的网络请求
|
4月前
|
网络协议 C# 开发者
WPF与Socket编程的完美邂逅:打造流畅网络通信体验——从客户端到服务器端,手把手教你实现基于Socket的实时数据交换
【8月更文挑战第31天】网络通信在现代应用中至关重要,Socket编程作为其实现基础,即便在主要用于桌面应用的Windows Presentation Foundation(WPF)中也发挥着重要作用。本文通过最佳实践,详细介绍如何在WPF应用中利用Socket实现网络通信,包括创建WPF项目、设计用户界面、实现Socket通信逻辑及搭建简单服务器端的全过程。具体步骤涵盖从UI设计到前后端交互的各个环节,并附有详尽示例代码,助力WPF开发者掌握这一关键技术,拓展应用程序的功能与实用性。
152 0
|
5月前
|
JSON 安全 应用服务中间件
【使用必读】服务端集成网易云信IM 即时通讯-回调说明篇(一)
【使用必读】服务端集成网易云信IM 即时通讯-回调说明篇(一)
97 0
|
5月前
|
开发工具 开发者
【使用必读】服务端集成网易云信IM 即时通讯-回调说明篇(二)
【使用必读】服务端集成网易云信IM 即时通讯-回调说明篇(二)
94 0
|
7月前
|
XML JSON Java
Android App开发即时通信中通过SocketIO在客户端与服务端间传输文本和图片的讲解及实战(超详细 附源码)
Android App开发即时通信中通过SocketIO在客户端与服务端间传输文本和图片的讲解及实战(超详细 附源码)
454 0
|
6月前
|
前端开发 JavaScript 容器
程序与技术分享:BeetleX之快速构建Web多房间聊天室
程序与技术分享:BeetleX之快速构建Web多房间聊天室
49 0
|
7月前
|
存储 小程序 开发者
开发微信小程序模拟聊天步骤及代码
开发微信小程序模拟聊天步骤及代码
181 0
|
7月前
|
JSON C# 图形学
【Unity 3D】利用C#、Unity和Socket实现简单的在线聊天室工具(附源码 简单易懂)
【Unity 3D】利用C#、Unity和Socket实现简单的在线聊天室工具(附源码 简单易懂)
208 0