项目7-音乐播放器3(删除模块+播放音乐模块设计)

1.播放音乐模块设计

1.1 请求响应设计

请求:

{

get,

/music/get?path=xxx.mp3

}

响应:

{

音乐数据本身的字节信息

}

1.2 后端代码

  1. Files.readAllBytes(String path) : 读取文件中的所有字节,读入内存 ,参数path是文件的路径

1.3 后端测试

后续经检查,上面返回的是错误的,应当是下面这样

1.3.1 测试请求是否收到对应响应

根据上述请求获取一个音乐文件:

可以明显看到有TAG标签
获取一个图片伪造的mp3文件:没有TAG标签

1.4 前后端交互

1.4.1 播放音乐

1.4.2 url的问题(重点)

在mysql存放的url有问题

1.4.3 前端代码的问题

//3.播放音乐
    @RequestMapping("/get")
    public ResponseEntity<byte[]> get(String musicTitle){
        String fullpath=Constant.SAVE_PATH+musicTitle;
        File file = new File(fullpath);
        byte[] bytes = new byte[0];
        byte[] a = null;
        try {
            a = Files.readAllBytes(file.toPath());
            if(a == null) {
                return ResponseEntity.badRequest().build();
            }
            return ResponseEntity.ok(a);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return ResponseEntity.badRequest().build();
    }

1.4.4 后端代码

<!-- 嵌入播放器 -->

<div style="width: 180px; height: 140px; position:absolute; bottom:10px; right:10px">

<script type="text/javascript" src="player/sewise.player.min.js"></script>

<script type="text/javascript">

SewisePlayer.setup({

server: "vod",

type: "mp3",

//这里是默认的一个网址

videourl:"http://jackzhang1204.github.io/materials/where_did_time_go.mp3",

skin: "vodWhite",

//这里需要设置false

autostart:"false",

});

</script>

</div>

写该函数的操作

2. 删除音乐模块设计(删除一个文件)

删除操作,用动态sql做

请求:

{

post,

/music/delete,

id

}

响应:

{

"status": 0,

"message": "删除成功!",

"data": true

}

//1.文件的删除

//2.sql库的删除

2.1 后端代码

MAPPER

SERVICE

controller

2.2 后端接口测试

测试成功!!!

2.3 前后端交互

 function deleteInfo(obj){
            $.ajax({
                url: "/music/singleDelete",
                type: "post",
                data: {
                    "musicId": obj
                },
                success: function(result){
                    if(result!=null&result.data!=null&result.status==200){
                        alert("删除音乐文件成功");
                        location.href="list.html";
                    }else{
                        alert("删除文件失败!!!")
                    }
                },
                error: function(error){
                    if(error!=null&&error.status==401){
                        alert("请登录用户");
                        location.href = "login.html";
                    }
                }

            });
        }

2.4 前端测试

测试成功!!!

3.批量删除

3.1 后端代码

mapper

对应的xml

service

controller

3.2 后端测试

1.什么也不删除

2.删除的id找不到

3.删除多个文件

测试成功!!!

3.3.需要注意的地方

3.4 前端代码

$.when(load).done(function () {
                $("#delete").click(function(){
                var i=0;
                var musicId=[];
                // var ids=[];
                // $("input:checkbox[name='selectBook']:checked").each(function () {
                //     ids.push($(this).val());//像数组添加元素
                // });
                // var idstr=ids.join(',');//将数组元素连接起来以构建一个字符串 
                // console.idstr;
                $("input:checkbox").each(function(){
                    //如果被选中,this代表发生事件的dom元素,<input>
                    //获取框内的id
                    if( $(this).is(":checked")) {
                        // //1.
                        musicId[i] = $(this).attr("id");//整型形式
                        //2.
                        // musicIdString = $(this).attr("id");//整型形式
                        // musicId[i]=parseInt(musicIdString);
                        i++;
                    }
                });
                console.log(musicId);
                $.ajax({
                    type: "get",
                    // url: "music/delete?ids="+idstr,
                    url: "music/delete",
                    data:{
                        "ids": musicId
                    },
                    // contentType: "application/json",
                    dataType: "json",  
                    success: function(result){
                        console.log(result);
                        if(result!=null&result.data!=null&result.status==200){
                            alert("删除音乐文件成功");
                            location.href="list.html";
                        }else{
                            alert("删除音乐文件失败");
                                
                        }
                        return;
                    },
                    error: function(error){
                        if(error!=null&&error.status==401){
                            alert("请登录用户");
                            location.href = "login.html";
                        }else{
                            alert(JSON.stringify(error));
                            location.href = "list.html";
                        }
                    }
                });
            })
相关推荐
2401_857439691 小时前
SpringBoot在线教育平台:设计与实现的深度解析
java·spring boot·后端
总是学不会.1 小时前
SpringBoot项目:前后端打包与部署(使用 Maven)
java·服务器·前端·后端·maven
IT学长编程1 小时前
计算机毕业设计 视频点播系统的设计与实现 Java实战项目 附源码+文档+视频讲解
java·spring boot·毕业设计·课程设计·毕业论文·计算机毕业设计选题·视频点播系统
一 乐2 小时前
英语词汇小程序小程序|英语词汇小程序系统|基于java的四六级词汇小程序设计与实现(源码+数据库+文档)
java·数据库·小程序·源码·notepad++·英语词汇
曳渔3 小时前
Java-数据结构-反射、枚举 |ू・ω・` )
java·开发语言·数据结构·算法
laocooon5238578863 小时前
java 模拟多人聊天室,服务器与客户机
java·开发语言
风槐啊3 小时前
六、Java 基础语法(下)
android·java·开发语言
苹果醋33 小时前
毕业设计_基于SpringBoot+vue的社区博客系统【源码+SQL+教程+可运行】41002
java·毕业设计·博客
冬天vs不冷3 小时前
SpringBoot基础(四):bean的多种加载方式
java·spring boot·spring
说书客啊3 小时前
计算机毕业设计 | SpringBoot+vue学生成绩管理系统教务管理系统
java·spring boot·node.js·vue·毕业设计·课程设计·教务管理系统