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(); }
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; } }