2015-04-06 5 views
1

Я воспроизвожу видео с помощью MediaElement .NET WPF и хочу, чтобы видео воспроизводилось при отключении звука, поэтому я устанавливаю том на 0. Достаточно просто.C# WPF MediaElement.Volume сбрасывается при смене устройства воспроизведения компьютера

Проблема заключается в том, что при щелчке правой кнопкой мыши на значке звука системы и выборе «Воспроизведение устройств» и изменении устройства воспроизведения по умолчанию, громкость MediaElement становится сброшенной.

Я не знаю, каким образом можно обнаружить такое изменение в конфигурации системы, так как я могу исправить эту проблему?

+0

Вы пытались использовать свойство IsMuted MediaElement для установки тома? – goobering

+0

Я не видел этого свойства, но установка IsMuted по-прежнему оставляет ту же проблему. При переключении аудиоустройства это также перезагружается. –

ответ

0

Я думаю, вы должны быть в состоянии избавиться от этого со связыванием. Вам нужно будет реализовать INotifyPropertyChanged где-то - здесь я использую среду MVVM Light, которая использует RaisePropertyChanged.

XAML:

<MediaElement IsMuted="{Binding IsMuted}" /> 

Codebehind/ViewModel:

/// <summary> 
/// The <see cref="IsMuted" /> property's name. 
/// </summary> 
public const string IsMutedPropertyName = "IsMuted"; 

private bool _isMuted = true; 

/// <summary> 
/// Sets and gets the IsMuted property. 
/// Changes to that property's value raise the PropertyChanged event. 
/// </summary> 
public bool IsMuted 
{ 
    get 
    { 
     return _isMuted; 
    } 

    set 
    { 
     if (_isMuted == value) 
     { 
      return; 
     } 

     //IsMuted will always return true 
     _isMuted = true; 
     RaisePropertyChanged("IsMuted"); 
    } 
} 

Будьте осторожны с этим и дать ему некоторое тщательное тестирование. Я не уверен на 100%, я мог бы гарантировать, что он вернет уровень до 0, прежде чем вы получите образец или два, играя как очень короткий крик.

 Смежные вопросы

  • Нет связанных вопросов^_^