private async void onDefaultAudioRenderDeviceChanged(object sender, DefaultAudioRenderDeviceChangedEventArgs args)
        {
            if (args.Role != AudioDeviceRole.Default || args.Id == AudioDeviceID)
            {
                return;
            }

            AudioDeviceID = args.Id;
            // If we don't have an instance yet, no need to fetch the audio client as it will be done upon
            // instance creation.
            if (Instance == null)
            {
                return;
            }
            await DispatchHelper.InvokeAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
            {
                // Always fetch the new audio client, as we always assign it when starting a new playback
                AudioClient = new AudioDeviceHandler(AudioDeviceID);
                // But if a playback is in progress, inform VLC backend that we changed device
                if (MediaPlayer != null)
                {
                    MediaPlayer.outputDeviceSet(AudioClient.audioClient());
                }
            });
        }
Exemple #2
0
        private void onDefaultAudioRenderDeviceChanged(object sender, DefaultAudioRenderDeviceChangedEventArgs args)
        {
            if (args.Role != AudioDeviceRole.Default || args.Id == AudioDeviceID)
            {
                return;
            }

            AudioDeviceID = args.Id;
            // Always fetch the new audio client, as we always assign it when starting a new playback
            // But if a playback is in progress, inform VLC backend that we changed device
            if (_mediaPlayer != null)
            {
                _mediaPlayer.outputDeviceSet(AudioDeviceID);
            }
        }
Exemple #3
0
        private async void OnDefaultAudioRenderDeviceChanged(object sender, DefaultAudioRenderDeviceChangedEventArgs args)
        {
            if (args.Role != AudioDeviceRole.Default || args.Id == _audioDeviceId)
            {
                return;
            }

            var oldDevice = await DeviceInformation.CreateFromIdAsync(_audioDeviceId);

            var device = await DeviceInformation.CreateFromIdAsync(args.Id);

            BLogger.Logger.Info($"Switching audio render device from [{oldDevice.Name}] to [{device.Name}]");

            _audioDeviceId = args.Id;

            await SharedLogic.Player.ChangeDevice(device.Name);
        }
Exemple #4
0
        private async void OnDefaultAudioRenderDeviceChanged(object sender, DefaultAudioRenderDeviceChangedEventArgs args)
        {
            // If we have a device ID but Play is disabled, enable it. This handles when an audio device has been been reset.
            if (!String.IsNullOrEmpty(args.Id) && !PlayPauseCommand.IsEnabled)
            {
                PlayPauseCommand.IsEnabled = true;
            }
            if (args.Role != AudioDeviceRole.Default || args.Id == _audioDeviceId)
            {
                return;
            }
            // If no device ID is supplied we cannot play media.
            if (String.IsNullOrEmpty(args.Id))
            {
                if (SharedLogic.Instance.Player.PlayerState == PlayerState.Playing)
                {
                    PlayPause();
                }
                PlayPauseCommand.IsEnabled = false;
                BLogger.I("Audio device disabled or not found.");
                await SharedLogic.Instance.NotificationManager.ShowMessageAsync("It appears your audio device has been disabled or stopped functioning. Please re-enable your audio device to continue. You may need to restart BreadPlayer to resume playback.");
            }
            else
            {
                PlayPauseCommand.IsEnabled = true;
                var device = await DeviceInformation.CreateFromIdAsync(args.Id);

                if (!String.IsNullOrEmpty(_audioDeviceId))
                {
                    var oldDevice = await DeviceInformation.CreateFromIdAsync(_audioDeviceId);

                    BLogger.I($"Switching audio render device from [{oldDevice.Name}] to [{device.Name}]");
                }
                else
                {
                    BLogger.I($"New audio render device connected. {device.Name}");
                }
                _audioDeviceId = args.Id;

                await SharedLogic.Instance.Player.ChangeDevice(device.Name);
            }
        }
 private void MediaDevice_DefaultAudioRenderDeviceChanged(
     object sender,
     DefaultAudioRenderDeviceChangedEventArgs args)
 {
     this.UpdateDefaultAudioDevices();
 }
 private void MediaDevice_DefaultAudioRenderDeviceChanged(object sender, DefaultAudioRenderDeviceChangedEventArgs args)
 {
     ShowPlaybackDevice(args.Id);
 }
Exemple #7
0
 /// <summary>
 /// Handles system default audio device changes.
 /// </summary>
 /// <param name="args">Instance of <see cref="DefaultAudioCaptureDeviceChangedEventArgs"/>.</param>
 private async void OnDefaultAudioDeviceChanged(object sender, DefaultAudioRenderDeviceChangedEventArgs args)
 {
     await UpdateSampleRate();
 }
 private void MediaDevice_DefaultAudioRenderDeviceChanged(object sender, DefaultAudioRenderDeviceChangedEventArgs args)
 {
     SetDeviceConfiguration(args.Id);
     OnPropertyChanged();
 }