This commit is contained in:
2023-10-24 20:38:37 +08:00
parent ce42fb29a4
commit 533c6dc5d5
5 changed files with 269 additions and 3 deletions

113
models/video.go Normal file
View File

@@ -0,0 +1,113 @@
package models
import (
openapi "github.com/alibabacloud-go/darabonba-openapi/client"
//util "github.com/alibabacloud-go/tea-utils/service"
//console "github.com/alibabacloud-go/tea-console/client"
env "github.com/alibabacloud-go/darabonba-env/client"
vod20170321 "github.com/alibabacloud-go/vod-20170321/v2/client"
"github.com/alibabacloud-go/tea/tea"
"log"
"fmt"
"regexp"
"github.com/spf13/viper"
)
// 使用AK&SK初始化账号Client
func InitVodClient (accessKeyId *string, accessKeySecret *string, regionId *string) (_result *vod20170321.Client, _err error) {
config := &openapi.Config{}
config.AccessKeyId = accessKeyId
config.AccessKeySecret = accessKeySecret
config.RegionId = regionId
_result = &vod20170321.Client{}
_result, _err = vod20170321.NewClient(config)
return _result, _err
}
func GetVideoM3U8(content string) (blob string) {
if len(regexp.MustCompile(`image.gameuiux.cn`).FindStringSubmatch(content)) > 0 {
key := regexp.MustCompile(`^https?://image.gameuiux.cn/`).ReplaceAllString(content, "")
// 从OSS中读取视频
bucket := GetBucket("gameui-image2")
body, err := bucket.GetObject(key)
if err != nil {
log.Println("读取视频失败", err)
return
}
defer body.Close()
// 先打印出视频对象
fmt.Println(body)
// 配置
accessKeyID := viper.GetString("video.accessKeyID")
accessKeySecret := viper.GetString("video.accessKey")
//endpoint := viper.GetString("video.endpoint")
regionId := "cn-shanghai"
// 连接点播服务的OSS
client, _err := InitVodClient(env.GetEnv(tea.String(accessKeyID)), env.GetEnv(tea.String(accessKeySecret)), &regionId)
if _err != nil {
return _err.Error()
}
fmt.Println(client)
return "空"
//// 1.获取视频上传地址和凭证,并生成视频信息
//createUploadVideoRequest := &vod20170321.CreateUploadVideoRequest{
// Title: args[1],
// FileName: args[2],
//}
//createUploadVideoResponse, _err := client.CreateUploadVideo(createUploadVideoRequest)
//if _err != nil {
// return _err.Error()
//}
//console.Log(util.ToJSONString(tea.ToMap(createUploadVideoResponse)))
//// 媒体id
//uploadVideoId := createUploadVideoResponse.Body.VideoId
//console.Log(uploadVideoId)
//// 如果视频文件过大,上传超时后可以刷新视频凭证,然后继续上传
//refreshUploadVideoRequest := &vod20170321.RefreshUploadVideoRequest{
// VideoId: uploadVideoId,
//}
//refreshUploadVideoReponse, _err := client.RefreshUploadVideo(refreshUploadVideoRequest)
//if _err != nil {
// return _err
//}
//console.Log(util.ToJSONString(tea.ToMap(refreshUploadVideoReponse)))
//// 2.oss视频文件上传需要用户实现
//// 3.上传过程中,获取媒体上传详情
//getUploadDetailsRequest := &vod20170321.GetUploadDetailsRequest{
// MediaIds: uploadVideoId,
//}
//getUploadDetailsReponse, _err := client.GetUploadDetails(getUploadDetailsRequest)
//if _err != nil {
// return _err
//}
//console.Log(util.ToJSONString(tea.ToMap(getUploadDetailsReponse)))
//// 4.媒体上传完成之后,可以获取媒体播放信息进行播放
//// 4.1 通过播放凭证播放
//getPlayInfoRequest := &vod20170321.GetPlayInfoRequest{
// VideoId: uploadVideoId,
//}
//getPlayInfoReponse, _err := client.GetPlayInfo(getPlayInfoRequest)
//if _err != nil {
// return _err
//}
//console.Log(util.ToJSONString(tea.ToMap(getPlayInfoReponse)))
//// 4.2 通过播放地址播放
//getVideoPlayAuthRequest := &vod20170321.GetVideoPlayAuthRequest{
// VideoId: uploadVideoId,
//}
//getVideoPlayAuthReponse, _err := client.GetVideoPlayAuth(getVideoPlayAuthRequest)
//if _err != nil {
// return _err
//}
//console.Log(util.ToJSONString(tea.ToMap(getVideoPlayAuthReponse)))
}
return
}