示例#1
0
        private static void Run()
        {
            IList <SonosSpeaker> speakers = new SonosDiscoveryService().FindSpeakers().Result;

            foreach (SonosSpeaker sonosSpeaker in speakers)
            {
                Console.WriteLine(sonosSpeaker.Name + " (" + sonosSpeaker.Uuid + ")");
            }

            SonosSpeaker speaker = speakers.FirstOrDefault(x => x.Name.StartsWith("J"));

            speaker.Control.OnUpdate += Control_OnUpdate;
            Console.WriteLine("Controlling " + speaker.Name);


            UPnPServer server = new UPnPServer();

            server.Start(24452);

            speaker.Control.SubscribeToEvents(server);

            while (true)
            {
                string line = Console.ReadLine();

                if (line.StartsWith("a"))
                {
                    speaker.Control.Play().Wait();
                }
                else if (line.StartsWith("s"))
                {
                    speaker.Control.Pause().Wait();
                }
                else if (line.StartsWith("n"))
                {
                    speaker.Control.Next().Wait();
                }
                else if (line.StartsWith("v"))
                {
                    speaker.Control.SetVolume(int.Parse(line.Remove(0, 1).Trim())).Wait();
                }
                else if (line.StartsWith("b"))
                {
                    Console.WriteLine(speaker.Control.GetVolume().Result);
                }
                else if (line.StartsWith("u"))
                {
                    AddUriQueueResponse result =
                        speaker.Control.AddURITOQueue(
                            "x-sonos-spotify:spotify%3atrack%3a456lFrF5OrYuCffSHSaYfs?sid=9&amp;flags=8224&amp;sn=1", "", 0, true).Result;
                    Console.WriteLine("TRACK NR: " + result.FirstTrackNumberEnqueued);
                    speaker.Control.Seek(SeekUnitType.TrackNumber, result.FirstTrackNumberEnqueued.ToString()).Wait();
                    speaker.Control.Play().Wait();;
                }
                else if (line.StartsWith("q"))
                {
                    break;
                }
            }
        }
示例#2
0
        public void WhenDevicesExist_ThenDetectThem()
        {
            var sut = new SonosDiscoveryService();

            sut.StartScan();

            Thread.Sleep(3000);

            Assert.That(sut.Players.Count, Is.GreaterThan(0));
        }
示例#3
0
        private void MainForm_Load(object sender, EventArgs e)
        {
            shutUpButton.Enabled = true;
            stopButton.Enabled   = false;

            toolStripStatusLabel.Text = string.Empty;

            _discoveryService = new SonosDiscoveryService();
            _discoveryService.PlayersChanged += PlayersChanged;

            _deviceService = new SonosDeviceService();

            _sonosControllerFactory = new SonosControllerFactory();
        }