Go语言Gin框架实现在线视频点播

需求:

1、通过HTML<video>标签可以播放指定的视频

2、前后端分离,接口只返回视频播放地址

3、使用Golang语言的gin框架实现

实现思路:

1、Gin框架做接口端,返回视频文件(本质上就是下载视频文件接口)

2、<video>标签中的src地址填写视频下载地址,通过Chrome在线播放

准备材料:

1、golang gin框架

2、一个mp4视频文件(pgs.mp4)

项目目录:

Go代码:

package main
/*
   gin框架实现文件下载功能
*/

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"path"
)

//主函数
func main() {
	r := gin.Default()

	//Get路由,动态路由
	r.GET("/GetFile/:name", DowFile)

	//监听端口
	err:=r.Run(":80")
	if err!=nil{
		fmt.Println("error")
	}
}

//文件下载功能实现
func DowFile(c *gin.Context)  {
	//通过动态路由方式获取文件名,以实现下载不同文件的功能
	name:=c.Param("name")
	//拼接路径,如果没有这一步,则默认在当前路径下寻找
	filename:=path.Join("./",name)
	//响应一个文件
	c.File(filename)
	return
}

/*
  注:
    1、运行以上代码,直接通过浏览器访问:http://localhost/GetFile/pgs.mp4
       可以看一个视频播放窗口,直接点播放即可以播放。需要说明的是,整个实现思路就是
       使用gin框架的文件下载功能,实现在视频的在线播放,将url嵌入h5等价于h5直接打开本地视频文件。

    2、url中的pgs.mp4就是服务端本地的文件,把文件格式改成exe或csv等,通过浏览器访问则可以
       实现文件下载功能。因为chrome可以直接播放mp4,所以请求以上url则会打开一个播放窗口。
*/

HTML<video>标签代码:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>在线视频播放示例</title> 
</head>
<body>

<video width="420" height="340" controls>
  <source src="http://localhost/GetFile/pgs.mp4"  type="video/ogg">
</video>

</body>
</html>

实现效果:

Go语言Gin框架实现在线视频点播
滚动到顶部