41 lines
1.0 KiB
Go
41 lines
1.0 KiB
Go
package videoser
|
|
|
|
import (
|
|
"bytes"
|
|
"io"
|
|
"videoweb/app/appg"
|
|
"videoweb/app/service/configser"
|
|
"videoweb/pub/common/ipaddr"
|
|
"videoweb/pub/common/m3u8"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// GetVTT 获取雪碧图 vtt,缩略图路径替换为图片 cdn,兼容 /laosiji 路径资源。
|
|
func GetVTT(ctx *gin.Context) {
|
|
fn := func(c *gin.Context) (contentLength int64, contentType string, reader io.Reader, extraHeaders map[string]string, err error) {
|
|
vttName := c.Param("key")
|
|
|
|
var req m3u8.Req
|
|
if err = c.BindQuery(&req); err != nil {
|
|
return
|
|
}
|
|
req.Name = vttName
|
|
|
|
imgCdn := configser.GetAppImageCdn(ipaddr.ResolveClientIP(c))
|
|
originDomain := appg.Conf.OrigDomain
|
|
lsjImageYuan := appg.Conf.LsjMediaConf.ImageYuan
|
|
|
|
buff, err := m3u8.TransformVtt(req.Name, imgCdn, originDomain, lsjImageYuan)
|
|
if err != nil {
|
|
return
|
|
}
|
|
contentType = "text/vtt; charset=utf-8"
|
|
reader = bytes.NewReader(buff)
|
|
contentLength = int64(len(buff))
|
|
extraHeaders = map[string]string{}
|
|
return
|
|
}
|
|
handlerFile(ctx, fn)
|
|
}
|