nativeaudio

audio playback for Go
Log | Files | Refs | README | LICENSE

commit b5d777e24d900661857614bfae7096190a26ef88
parent 510674d8bb8e294f99a0f1e4550f67abeb78647a
Author: Jack Mordaunt <jackmordaunt.dev@gmail.com>
Date:   Fri,  3 May 2024 16:18:32 +0800

cmd/nativeaudio: allow conversion

Convert the audio file instead of playing it, if out is specified.

Diffstat:
Mcmd/nativeaudio/main.go | 23++++++++++++++++++++---
1 file changed, 20 insertions(+), 3 deletions(-)

diff --git a/cmd/nativeaudio/main.go b/cmd/nativeaudio/main.go @@ -8,10 +8,14 @@ import ( "git.sr.ht/~jackmordaunt/nativeaudio" ) -var in string +var ( + in string + out string +) func main() { - flag.StringVar(&in, "in", "", "input audio file to play") + flag.StringVar(&in, "in", "", "input audio file") + flag.StringVar(&out, "out", "", "output pcm file, will play audio if out not specified") flag.Parse() if err := run(); err != nil { fmt.Printf("error: %v\n", err) @@ -20,5 +24,18 @@ func main() { } func run() error { - return nativeaudio.Play(in) + if out != "" { + un, _, err := nativeaudio.Load(in) + if err != nil { + return fmt.Errorf("loading audio file: %w", err) + } + if err := os.WriteFile(out, un, 0o644); err != nil { + return fmt.Errorf("writing output pcm file: %w", err) + } + return nil + } + if err := nativeaudio.Play(in); err != nil { + return fmt.Errorf("playing audio file: %w", err) + } + return nil }