private static void PlayOnAllDevices(string url)
        {
            var audioHub = new AudioHub(new CompositePlaybackInfoProvider(new IPlaybackInfoProvider[0]));

            var allDevices = audioHub.Devices
                             .OfType <PlaybackAudioDevice>()
                             .ToArray();

            var playback = audioHub.CreatePlayback(new Uri(url));

            foreach (var playbackAudioDevice in allDevices)
            {
                playback.AddOutgoingConnection(playbackAudioDevice);
            }

            playback.Play();

            var random = new Random();

            Task.Run(() =>
            {
                while (true)
                {
                    Thread.Sleep(5000);

                    var index = random.Next(allDevices.Length);

                    var device = allDevices[index];

                    playback.RemoveOutgoingConnection(device);

                    Thread.Sleep(5000);

                    playback.AddOutgoingConnection(device);
                }
            });

            while (true)
            {
                Console.Clear();
                Console.WriteLine(((Playback)playback).Write());

                Thread.Sleep(100);
            }
        }
        private static void PlayPlaylist(string url)
        {
            var playbackInfoProvider = new YoutubePlaybackInfoProvider();
            var audioHub             = new AudioHub(playbackInfoProvider);

            var allDevices = audioHub.Devices
                             .OfType <PlaybackAudioDevice>()
                             .ToArray();

            var playbackUris = new YoutubePlaylistProvider().CreatePlaylist(new Uri(url));
            var playback     = new PlaylistPlayback(audioHub, playbackUris);

            foreach (var playbackAudioDevice in allDevices)
            {
                playback.AddOutgoingConnection(playbackAudioDevice);
            }

            playback.CurrentTrack = playback.Tracks[15];
            playback.Play();
        }
Exemple #3
0
        public async Task Raise(IEventArgs args)
        {
            if (IsPlaying)
            {
                return;
            }

            try
            {
                IsPlaying = true;

                using (AudioPlayer.Mute(Configuration.MuteAudioLevel))
                {
                    await AudioHub.Play(Configuration.AudioUri);
                }
            }
            finally
            {
                IsPlaying = false;
            }
        }