diff --git a/client.go b/client.go index 017dd6d5..b657dd6b 100644 --- a/client.go +++ b/client.go @@ -1602,6 +1602,19 @@ func (c *Client) Play(ra *headers.Range) (*base.Response, error) { } } +// SetupAndPlay setups and play the given tracks. +func (c *Client) SetupAndPlay(tracks Tracks, baseURL *base.URL) error { + for _, t := range tracks { + _, err := c.Setup(true, baseURL, t, 0, 0) + if err != nil { + return err + } + } + + _, err := c.Play(nil) + return err +} + func (c *Client) doRecord() (*base.Response, error) { err := c.checkState(map[clientState]struct{}{ clientStatePreRecord: {}, diff --git a/examples/client-read-aac/main.go b/examples/client-read-aac/main.go index d80e171b..98af342f 100644 --- a/examples/client-read-aac/main.go +++ b/examples/client-read-aac/main.go @@ -88,16 +88,8 @@ func main() { } } - // setup all tracks - for _, t := range tracks { - _, err := c.Setup(true, baseURL, t, 0, 0) - if err != nil { - panic(err) - } - } - // start reading tracks - _, err = c.Play(nil) + err = c.SetupAndPlay(tracks, baseURL) if err != nil { panic(err) } diff --git a/examples/client-read-h264-save-to-disk/main.go b/examples/client-read-h264-save-to-disk/main.go index 6390c30f..80bb3804 100644 --- a/examples/client-read-h264-save-to-disk/main.go +++ b/examples/client-read-h264-save-to-disk/main.go @@ -93,16 +93,8 @@ func main() { } } - // setup all tracks - for _, t := range tracks { - _, err := c.Setup(true, baseURL, t, 0, 0) - if err != nil { - panic(err) - } - } - // start reading tracks - _, err = c.Play(nil) + err = c.SetupAndPlay(tracks, baseURL) if err != nil { panic(err) } diff --git a/examples/client-read-h264/main.go b/examples/client-read-h264/main.go index b206ef6c..02e1f4c7 100644 --- a/examples/client-read-h264/main.go +++ b/examples/client-read-h264/main.go @@ -82,16 +82,8 @@ func main() { } } - // setup all tracks - for _, t := range tracks { - _, err := c.Setup(true, baseURL, t, 0, 0) - if err != nil { - panic(err) - } - } - // start reading tracks - _, err = c.Play(nil) + err = c.SetupAndPlay(tracks, baseURL) if err != nil { panic(err) }