Documentation
¶
Overview ¶
Package audio is the malgo (miniaudio) playback engine: it streams, decrypts and decodes Deezer audio (MP3 + FLAC) into a PCM ring that a single output device drains. Supports seek, per-track ReplayGain, output-device selection, gapless transitions and (experimental) crossfade. In-memory only — nothing is written to disk.
Index ¶
- type Device
- type Player
- func (p *Player) AddVolume(delta float64) float64
- func (p *Player) Close()
- func (p *Player) CrossfadeMS() int
- func (p *Player) CurrentDevice() string
- func (p *Player) Devices() ([]Device, error)
- func (p *Player) DurationMS() int64
- func (p *Player) Format() string
- func (p *Player) Gapless() bool
- func (p *Player) LastError() string
- func (p *Player) Pause()
- func (p *Player) Play(plan *deezer.StreamPlan, durationMS int64) error
- func (p *Player) PositionMS() int64
- func (p *Player) Preload(plan *deezer.StreamPlan, durationMS int64)
- func (p *Player) ReplayGain() bool
- func (p *Player) Resume()
- func (p *Player) SeekMS(ms int64)
- func (p *Player) SetCrossfadeMS(ms int)
- func (p *Player) SetDevice(id string) error
- func (p *Player) SetGapless(on bool)
- func (p *Player) SetOnFinish(fn func())
- func (p *Player) SetReplayGain(on bool)
- func (p *Player) State() State
- func (p *Player) Stop()
- func (p *Player) TogglePause()
- func (p *Player) Volume() float64
- type State
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Device ¶ added in v0.4.0
type Device struct {
ID string // backend device id, hex-encoded; "" = system default
Name string
IsDefault bool
}
Device is an output device the user can pick.
type Player ¶
type Player struct {
// contains filtered or unexported fields
}
Player owns the malgo context + one output device and plays a current source, optionally with a preloaded next source for gapless/crossfade.
func (*Player) Close ¶ added in v0.4.0
func (p *Player) Close()
Close tears down the device + context.
func (*Player) CrossfadeMS ¶ added in v0.4.0
func (*Player) CurrentDevice ¶ added in v0.4.0
CurrentDevice returns the selected device id ("" = default).
func (*Player) DurationMS ¶
func (*Player) Play ¶
func (p *Player) Play(plan *deezer.StreamPlan, durationMS int64) error
Play starts a track immediately, replacing anything current.
func (*Player) PositionMS ¶
func (*Player) Preload ¶ added in v0.4.0
func (p *Player) Preload(plan *deezer.StreamPlan, durationMS int64)
Preload prepares the next track so the transition is gapless/crossfaded. It is a no-op if gapless is disabled.
func (*Player) ReplayGain ¶ added in v0.3.0
func (*Player) SetCrossfadeMS ¶ added in v0.4.0
func (*Player) SetDevice ¶ added in v0.4.0
SetDevice switches output to the device with the given id ("" = system default), reinitializing the playback device. Playback continues from the current source.
func (*Player) SetGapless ¶ added in v0.4.0
SetGapless enables/disables gapless transitions between tracks.
func (*Player) SetOnFinish ¶
func (p *Player) SetOnFinish(fn func())
func (*Player) SetReplayGain ¶ added in v0.3.0
func (*Player) TogglePause ¶
func (p *Player) TogglePause()