UWP C # для отображения AudioDevice DeviceInformation в текстовый блок - PullRequest
0 голосов
/ 24 сентября 2019

У меня возникли проблемы с отображением моего сохраненного имени USB Audio Adapter на textblock, когда я загружаю его из ApplicationDataContainer

, при выборе из listbox, deviceId можетдля правильного отображения на textblock

private void audioRenderList_P_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        mediaPlayer_CH1.AudioDevice = renderDeviceList_P[audioRenderList_P.SelectedIndex];
        renderDeviceName_P.Text = renderDeviceList_P[audioRenderList_P.SelectedIndex].Name.ToString();
    }

if (mediaPlayer_CH1.AudioDevice.Id != null)
        {
            Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
            Windows.Storage.StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;

            localSettings.Values["audioRenderSettings_P"] = mediaPlayer_CH1.AudioDevice.Id;
        }

enter image description here

Однако при загрузке сохраненного аудио deviceId оно не может отображаться какчитаемые символы;

    Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
    Windows.Storage.StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;

    if (localSettings.Values["audioRenderSettings_P"] != null)
    {
        var audioSource = localSettings.Values["audioRenderSettings_P"] as string;
        mediaPlayer_CH1.AudioDevice = await DeviceInformation.CreateFromIdAsync(audioSource);
        renderDeviceName_P.Text = audioSource;
    }
    else renderDeviceName_P.Text = "Select Audio Device ..";

enter image description here

Пожалуйста, помогите.Спасибо.

1 Ответ

1 голос
/ 24 сентября 2019

В событии SelectionChanged вы отображаете Имя и сохраняете Id .Но при загрузке вы видите Id , они не совпадают.

При загрузке вы можете изменить код на:

var audioSource = localSettings.Values["audioRenderSettings_P"] as string;
mediaPlayer_CH1.AudioDevice = await DeviceInformation.CreateFromIdAsync(audioSource);
renderDeviceName_P.Text = mediaPlayer_CH1.AudioDevice.Name.ToString();

С уважением.

...