@@ 8,9 8,9 @@ package player
import (
"fmt"
- //"os"
+ "os"
"math"
- //"encoding/binary"
+ "encoding/binary"
"time"
"slices"
@@ 1129,6 1129,39 @@ func (p *Player) RenderBufferRaw(bufSize
return ret, count, pState
}
+// floatMode: use float32 output
+func (p *Player) RenderToFile(path string, floatMode bool) {
+ //_log.Dbg("%F path:", path, "floatMode:", floatMode)
+ fmt.Println("Player RenderToFile path:", path, "floatMode:", floatMode)
+
+ var outBuf []byte
+ var outBufRaw [][2]float64
+ if !floatMode {
+ outBuf = p.RenderToBufRaw()
+ } else {
+ outBufRaw = p.RenderToBuf()
+ }
+
+ f, err := os.Create(path)
+ if err != nil {
+ panic(err)
+ }
+ if !floatMode {
+ _, err := f.Write(outBuf)
+ if err != nil {
+ panic(err)
+ }
+ } else {
+ data := BufTof32Buf(outBufRaw)
+ err = binary.Write(f, binary.LittleEndian, data)
+ if err != nil {
+ panic(err)
+ }
+ }
+ f.Close()
+ _log.Dbg("done %F")
+}
+
func (p *Player) _renderToBuf() ([][2]float64, []byte) {
fmt.Println("Player _renderToBuf")