Decode decodes MP3 source and returns a decoded stream. Decode returns error when decoding fails or IO error happens. Decode automatically resamples the stream to fit with the audio context if necessary.
(src convert.ReadSeekCloser, sr int)
| 55 | // |
| 56 | // Decode automatically resamples the stream to fit with the audio context if necessary. |
| 57 | func Decode(src convert.ReadSeekCloser, sr int) (*Stream, error) { |
| 58 | d, err := mp3.NewDecoder(src) |
| 59 | if err != nil { |
| 60 | return nil, err |
| 61 | } |
| 62 | var r *convert.Resampling |
| 63 | stream := &Stream{ |
| 64 | orig: d, |
| 65 | resampling: r, |
| 66 | } |
| 67 | if d.SampleRate() != sr { |
| 68 | stream.resampling = convert.NewResampling(stream, stream.orig.Length(), stream.orig.SampleRate(), sr) |
| 69 | } |
| 70 | return stream, nil |
| 71 | } |
no test coverage detected