package transcode import "github.com/gopxl/beep" type samplesStreamer struct { samples []float64 pos int sampleRate beep.SampleRate } func newSamplesStreamer(samples []float64, sampleRate int) *samplesStreamer { return &samplesStreamer{ samples: samples, sampleRate: beep.SampleRate(sampleRate), } } func (s *samplesStreamer) Stream(buf [][2]float64) (int, bool) { if s.pos >= len(s.samples) { return 0, false } n := 0 for i := range buf { if s.pos >= len(s.samples) { return n, n > 0 } v := s.samples[s.pos] buf[i][0] = v buf[i][1] = v s.pos++ n++ } return n, true } func (s *samplesStreamer) Err() error { return nil }