48 lines
614 B
Go
Raw Permalink Normal View History

2022-10-17 19:39:06 +02:00
package main
import (
"fmt"
"io"
"log"
"os"
"github.com/hajimehoshi/oto"
"github.com/hajimehoshi/go-mp3"
)
func run() error {
f, err := os.Open("alert.mp3")
if err != nil {
return err
}
defer f.Close()
d, err := mp3.NewDecoder(f)
if err != nil {
return err
}
c, err := oto.NewContext(d.SampleRate(), 2, 2, 44100)
if err != nil {
return err
}
defer c.Close()
p := c.NewPlayer()
defer p.Close()
fmt.Printf("Length: %d[bytes]\n", d.Length())
if _, err := io.Copy(p, d); err != nil {
return err
}
return nil
}
func main() {
if err := run(); err != nil {
log.Fatal(err)
}
}