NewVideoFromFile 从文件创建视频
(path string)
| 156 | |
| 157 | // NewVideoFromFile 从文件创建视频 |
| 158 | func NewVideoFromFile(path string) (*Video, error) { |
| 159 | data, err := os.ReadFile(path) |
| 160 | if err != nil { |
| 161 | return nil, fmt.Errorf("failed to read video file: %w", err) |
| 162 | } |
| 163 | |
| 164 | video := &Video{ |
| 165 | Name: filepath.Base(path), |
| 166 | Size: int64(len(data)), |
| 167 | Data: base64.StdEncoding.EncodeToString(data), |
| 168 | } |
| 169 | |
| 170 | // 根据扩展名设置 MIME 类型 |
| 171 | ext := strings.ToLower(filepath.Ext(path)) |
| 172 | switch ext { |
| 173 | case ".mp4": |
| 174 | video.MimeType = "video/mp4" |
| 175 | case ".webm": |
| 176 | video.MimeType = "video/webm" |
| 177 | case ".mov": |
| 178 | video.MimeType = "video/quicktime" |
| 179 | case ".avi": |
| 180 | video.MimeType = "video/x-msvideo" |
| 181 | default: |
| 182 | video.MimeType = "video/*" |
| 183 | } |
| 184 | |
| 185 | return video, nil |
| 186 | } |
| 187 | |
| 188 | // Audio 音频 |
| 189 | type Audio struct { |