MCPcopy Create free account
hub / github.com/astercloud/aster / NewAudioFromFile

Function NewAudioFromFile

pkg/media/types.go:226–256  ·  view source on GitHub ↗

NewAudioFromFile 从文件创建音频

(path string)

Source from the content-addressed store, hash-verified

224
225// NewAudioFromFile 从文件创建音频
226func NewAudioFromFile(path string) (*Audio, error) {
227 data, err := os.ReadFile(path)
228 if err != nil {
229 return nil, fmt.Errorf("failed to read audio file: %w", err)
230 }
231
232 audio := &Audio{
233 Name: filepath.Base(path),
234 Size: int64(len(data)),
235 Data: base64.StdEncoding.EncodeToString(data),
236 }
237
238 // 根据扩展名设置 MIME 类型
239 ext := strings.ToLower(filepath.Ext(path))
240 switch ext {
241 case ".mp3":
242 audio.MimeType = "audio/mpeg"
243 case ".wav":
244 audio.MimeType = "audio/wav"
245 case ".ogg":
246 audio.MimeType = "audio/ogg"
247 case ".m4a":
248 audio.MimeType = "audio/mp4"
249 case ".flac":
250 audio.MimeType = "audio/flac"
251 default:
252 audio.MimeType = "audio/*"
253 }
254
255 return audio, nil
256}
257
258// File 通用文件
259type File struct {

Callers 1

NewAudioFunction · 0.85

Calls 1

ReadFileMethod · 0.45

Tested by

no test coverage detected