SpringBoot + thymeleaf 实现读取视频列表并播放视频功能

2023-01-21 0 3,374

目录

通过读取数据库video表获取当前视频的视频名、视频地址,展示至前端页面videorecord.html,通过点击播放按钮获取数据id进而得到所选视频地址,跳转播放视频显示页videoshow.html,播放所选视频。当然本案例只是为了展示主要的一些功能,其他比如跳转、页面布局美化等可以自行进行更改。

效果

SpringBoot + thymeleaf 实现读取视频列表并播放视频功能

Springboot播放视频

SpringBoot + thymeleaf 实现读取视频列表并播放视频功能

SpringBoot + thymeleaf 实现读取视频列表并播放视频功能

实现过程

后端程序示例

1. Controller层示例

返回数据库数据时,使用了pagehelp当中的PageInfo,为了后期扩展分页功能,正常写法返回值类型应为实体类Video.

package com.dvms.controller;
/*
 *文件名: VideoController
 *创建者: CJW
 *创建时间:2022/4/14 16:40
 *描述: TODO
 */
import com.dvms.entity.Video;
import com.dvms.service.ParamoduleService;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class VideoController {
    @Autowired
    private ParamoduleService paramoduleService;
    //查出记录
    @RequestMapping(\"/angle/findvideoRecord\")
    public String findvideorecords(Model model){
        System.out.println(paramoduleService.findvideorecord());
        PageInfo<Video> videoRecord = new PageInfo<>(paramoduleService.findvideorecord());
        model.addAttribute(\"videorecord\", videoRecord);
        return \"angle/videorecord\";
    }
    // 查出视频地址
    @RequestMapping(\"/angle/findvideo\")
    public String findvideo(String id, String filenamev, Model model){
        System.out.println(id);
        String videopath = paramoduleService.findvideo(id);
        System.out.println(videopath);
        model.addAttribute(\"videourl\",videopath);
        model.addAttribute(\"videoname\",filenamev);
        
        return \"angle/videoshow\";
}

SpringBoot + thymeleaf 实现读取视频列表并播放视频功能

2. Service层

package com.dvms.service;

import com.dvms.entity.Record;
import com.dvms.entity.Video;

import java.util.List;
import java.util.Map;

/*
 *文件名: ParamoduleService
 *创建者: CJW
 *创建时间:2022/1/15 10:54
 *描述: TODO
 */
public interface ParamoduleService {

    String findvideo(String id);

    List<Video> findvideorecord();

}

SpringBoot + thymeleaf 实现读取视频列表并播放视频功能

3. ServiceImpl层

package com.dvms.service.Impl;

import com.dvms.dao.ParamoduleDao;
import com.dvms.entity.Record;
import com.dvms.entity.Video;
import com.dvms.service.ParamoduleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/*
 *文件名: ParamoduleServiceImpl
 *创建者: CJW
 *创建时间:2022/1/15 10:55
 *描述: TODO
 */
@Service
public class ParamoduleServiceImpl implements ParamoduleService {

    @Autowired
    private ParamoduleDao paramoduleDao;

    //查出视频文件地址
    @Override
    public String findvideo(String id){
        return paramoduleDao.findvideo(id);
    }
    //查出视频记录
    @Override
    public List<Video> findvideorecord(){
        return paramoduleDao.findvideorecord();
    }
}

SpringBoot + thymeleaf 实现读取视频列表并播放视频功能

4. dao(mapper)层

package com.dvms.dao;

import com.dvms.entity.Record;
import com.dvms.entity.Video;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/*
 *文件名: ParamoduleDao
 *创建者: CJW
 *创建时间:2022/1/15 10:52
 *描述: TODO
 */

@Repository
public interface ParamoduleDao {

     String findvideo(String id);

     List<Video> findvideorecord();
}

SpringBoot + thymeleaf 实现读取视频列表并播放视频功能

4. entity(pojo)层

package com.dvms.entity;

/*
 *文件名: Video
 *创建者: CJW
 *创建时间:2022/4/14 16:17
 *描述: TODO
 */

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true) //链式调用

public class Video {

    private String id;
    private String filename;
    private String filepath;

}

SpringBoot + thymeleaf 实现读取视频列表并播放视频功能

5. daoMapper.xml

<?xml version=\"1.0\" encoding=\"UTF-8\" ?>
<!DOCTYPE mapper
        PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\"
        \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">
<mapper namespace=\"com.dvms.dao.ParamoduleDao\">

    <!--查询存在视频-->
    <select id=\"findvideo\" resultType=\"String\">
        select filepath from video where id=#{id}
    </select>

    <!--查询存在视频记录-->
    <select id=\"findvideorecord\" resultType=\"Video\">
        select id,filename,filepath from video
    </select>

</mapper>

SpringBoot + thymeleaf 实现读取视频列表并播放视频功能

6. video数据库表结构

SpringBoot + thymeleaf 实现读取视频列表并播放视频功能

SpringBoot + thymeleaf 实现读取视频列表并播放视频功能

前端程序示例

前端需引入thymeleaf、bootstrap等

SpringBoot + thymeleaf 实现读取视频列表并播放视频功能

1. videorecord.html

		<div class=\"main col-md-9 ml-sm-auto col-lg-10 pt-3 px-4\">
			<!-- MAIN CONTENT -->
			<div class=\"main-content\">
				<div class=\"container-fluid\">
					<h3 class=\"page-title\">视频管理</h3>
					<div class=\"row\">
						<div class=\"col-md-15\">
							<!-- BASIC TABLE -->
							<div class=\"panel\">
								<div class=\"panel-heading\">
									<div><h3 class=\"panel-title\" style=\"color: #0f0f0f\">视频记录</h3></div>
									<!--<hr style=\"color: #6ecadc\">-->
								</div>
								<div class=\"panel-body\">
									<table class=\"table table-bordered table-sm table-hover\">
										<tr class=\"table_header\" style=\"background-color: #009bc8;color: #0f0f0f\">
											<td hidden>
												ID
											</td>
											<td class=\"text-center\">
												视频文件名
											</td>
											<td class=\"text-center\">
												操作
											</td>
										</tr>
										<tr th:class=\"${rowstate.odd}?\'row1\':\'row2\'\" th:each=\"video,rowstate:${videorecord.list}\">
											<td hidden>
												<span th:text=\"${video.id}\"></span>
											</td>

											<td class=\"text-center\">
												<span th:text=\"${video.filename}\"></span>
											</td>
											<td class=\"text-center\">
												<a type=\"button\" class=\"btn btn-info btn-xs\" th:href=\"@{/angle/findvideo(id=${video.id},filenamev=${video.filename})}\" rel=\"external nofollow\" >播放</a>&nbsp;
												<a type=\"button\" class=\"btn btn-info btn-xs\" th:href=\"@{/angle/findvideo(id=${video.id})}\" rel=\"external nofollow\" >下载</a>&nbsp;

											</td>
										</tr>
									</table>
									<div class=\"modal-footer no-margin-top\">
										
									</div>
								</div>
							</div>
							<!-- END CONDENSED TABLE -->
						</div>
					</div>
				</div>
			</div>
			<!-- END MAIN CONTENT -->
		</div>

2. videoshow.html

		<div class=\"main col-md-9 ml-sm-auto col-lg-10 pt-3 px-4\">
			<!-- MAIN CONTENT -->
			<div class=\"main-content\">
				<div class=\"container-fluid\">
					<h3 class=\"page-title\">播放视频示例</h3>
							<div class=\"panel\">
									<div class=\"panel-body\">
									<div class=\"dropdown\" >
                                        <a ><span>当前播放视频:</span><span style=\"color: #0f0f0f\" th:text=\"${videoname}\"></span></a>

									</div>

									</div>
								</div>

					<div class=\"col-md-15\">
							<!-- BASIC TABLE -->
							<div class=\"panel\">
								<div class=\"panel-heading\">
								<div class=\"panel-body\">
									<table class=\"table  table-sm table-hover\">
										<tr  style=\"background-color: #FEFFFD;color: #FEFFFD\">

											<td>
												XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
                                            </td>
											<td style=\"text-align: center\">
												<!--<img th:src=\"${imageurl}\">-->
												<video align=\"center\"width=\"800\" height=\"550\" controls>
													<source th:src=\"${videourl}\" type=\"video/mp4\">
													您的浏览器不支持 HTML5 video 标签。
												</video>
											</td>
											<td>
												XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
                                            </td>
										</tr>
									</table>
									<div class=\"modal-footer no-margin-top\">
									</div>
                                    <div>
                                    </div>
                                </div>
							</div>
						</div>
					</div>
				</div>
			</div>
			<!-- END MAIN CONTENT -->
		</div>

:本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可, 转载请附上原文出处链接。
1、本站提供的源码不保证资源的完整性以及安全性,不附带任何技术服务!
2、本站提供的模板、软件工具等其他资源,均不包含技术服务,请大家谅解!
3、本站提供的资源仅供下载者参考学习,请勿用于任何商业用途,请24小时内删除!
4、如需商用,请购买正版,由于未及时购买正版发生的侵权行为,与本站无关。
5、本站部分资源存放于百度网盘或其他网盘中,请提前注册好百度网盘账号,下载安装百度网盘客户端或其他网盘客户端进行下载;
6、本站部分资源文件是经压缩后的,请下载后安装解压软件,推荐使用WinRAR和7-Zip解压软件。
7、如果本站提供的资源侵犯到了您的权益,请邮件联系: 442469558@qq.com 进行处理!

猪小侠源码-最新源码下载平台 Java教程 SpringBoot + thymeleaf 实现读取视频列表并播放视频功能 http://www.20zxx.cn/463217/xuexijiaocheng/javajc.html

猪小侠源码,优质资源分享网

常见问题
  • 本站所有资源版权均属于原作者所有,均只能用于参考学习,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,建议提前注册好百度网盘账号,使用百度网盘客户端下载
查看详情

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务