summaryrefslogtreecommitdiff
path: root/example_test.go
blob: 78b2f27c410d89a2866165087237fdeccac428d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package soundbox_test

import (
	"context"
	"log"
	"net"
	"time"

	"xengineering.eu/soundbox"
)

func ExampleStreamURLContext() {
	ctx, cancel := context.WithCancel(context.Background())

	// all soundboxes are referenced by their MAC address
	soundboxes := []net.HardwareAddr{
		{0x00, 0x00, 0x5E, 0x00, 0x53, 0x01},
		{0x00, 0x00, 0x5E, 0x00, 0x53, 0x02},
		{0x00, 0x00, 0x5E, 0x00, 0x53, 0x03},
	}

	// currently only web radio is supported
	url := "https://example.org/radio.mp3"

	// start streaming
	go func() {
		err := soundbox.StreamURLContext(ctx, url, soundboxes)
		if err != nil {
			log.Fatal(err)
		}
	}()

	// let it play for some time
	time.Sleep(time.Minute)

	// stop it
	cancel()
}