完成Web ASM

This commit is contained in:
Misaki
2026-06-08 22:09:35 +08:00
parent e565b80bc2
commit 36660519c1
28 changed files with 1148 additions and 178 deletions
+44
View File
@@ -0,0 +1,44 @@
package ncmcrypt
import (
"fmt"
"os"
)
func EmbedMetadata(audio []byte, format NcmFormat, title, artist, album string, coverData []byte) ([]byte, error) {
tmpFile, err := os.CreateTemp("", "ncmdump-embed-*")
if err != nil {
return nil, fmt.Errorf("create temp file: %w", err)
}
tmpPath := tmpFile.Name()
defer os.Remove(tmpPath)
if _, err := tmpFile.Write(audio); err != nil {
tmpFile.Close()
return nil, fmt.Errorf("write temp: %w", err)
}
tmpFile.Close()
ncm := &NeteaseCloudMusic{
mPng: [8]byte{0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A},
mFormat: format,
mDumpFilePath: tmpPath,
mImageData: coverData,
mMetadata: &NeteaseClousMusicMetadata{
mName: title,
mArtist: artist,
mAlbum: album,
},
}
if _, err := ncm.FixMetadata(false); err != nil {
return nil, fmt.Errorf("write metadata: %w", err)
}
result, err := os.ReadFile(tmpPath)
if err != nil {
return nil, fmt.Errorf("read result: %w", err)
}
return result, nil
}