Files
webp/models/video.go
2023-10-24 20:38:37 +08:00

113 lines
3.7 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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
}