public void DefaultValue() { var wrapper = new MediaElementWrapper(); var element = new MediaElement(); Assert.AreEqual(element.Volume, wrapper.Volume); }
public void DecreaseVolumeWithParameter(object increment, double expected) { var wrapper = new MediaElementWrapper(); Assert.AreEqual(0.5, wrapper.Volume); Assert.AreEqual(0.05, wrapper.VolumeIncrement); MediaCommands.DecreaseVolume.Execute(increment, wrapper); Assert.AreEqual(expected, wrapper.Volume); }
public void SetVolumeToZeroSetsIsMutedToTrue() { var wrapper = new MediaElementWrapper(); Assert.AreEqual(false, wrapper.IsMuted); wrapper.Volume = 0; Assert.AreEqual(true, wrapper.IsMuted); wrapper.Volume = 0.5; Assert.AreEqual(false, wrapper.IsMuted); }
public void IsMutedCoercesWhenVolumeIsZero() { var wrapper = new MediaElementWrapper(); Assert.AreEqual(false, wrapper.IsMuted); wrapper.Volume = 0.0; Assert.AreEqual(true, wrapper.IsMuted); wrapper.IsMuted = false; Assert.AreEqual(true, wrapper.IsMuted); wrapper.Volume = 0.5; Assert.AreEqual(false, wrapper.IsMuted); }
public static ReadOnlyObservableCollection <PropertyItem> GetPropertyItems(MediaElementWrapper wrapper) { var dps = typeof(MediaElementWrapper).GetFields(BindingFlags.Static | BindingFlags.Public) .Where(f => f.FieldType == typeof(DependencyProperty)) .Select(f => f.GetValue(null)) .OfType <DependencyProperty>() .OrderBy(x => x.Name) .ToArray(); var props = dps.Select(dp => PropertyItem.GetOrCreate(wrapper, dp)) .ToArray(); return(new ReadOnlyObservableCollection <PropertyItem>(new ObservableCollection <PropertyItem>(props))); }
public static PropertyItem GetOrCreate(MediaElementWrapper wrapper, DependencyProperty property) { PropertyItem item; if (!Cache.TryGetValue(property, out item)) { var proxy = DependencyProperty.RegisterAttached( property.Name + "Proxy", typeof(object), typeof(PropertyItem), new PropertyMetadata(null, OnProxyPropertyChanged)); item = new PropertyItem(wrapper, property, proxy); Cache[property] = item; } return(item); }
private PropertyItem(MediaElementWrapper wrapper, DependencyProperty property, DependencyProperty proxyProperty) { this.wrapper = wrapper; this.mediaElement = (MediaElement)MediaElementField.GetValue(wrapper); this.Property = property; this.mediaElementProperty = typeof(MediaElement).GetProperty(property.Name); this.proxyProperty = proxyProperty; if (property.ReadOnly) { var binding = new Binding(property.Name) { Source = wrapper, Mode = BindingMode.OneWay }; BindingOperations.SetBinding(wrapper, this.proxyProperty, binding); } else { var binding = new Binding(property.Name) { Source = wrapper, Mode = BindingMode.TwoWay }; BindingOperations.SetBinding(wrapper, this.proxyProperty, binding); } }
public TestPlayerViewModel(MediaElementWrapper wrapper) { this.Properties = MediaElementToPropertyListConverter.GetPropertyItems(wrapper); }
public virtual void Unload() { Debug.WriteLine("MediaElementWrapperStreamingMediaPlugin.Unload()"); MediaPlayer.MediaClosed -= MediaPlayer_MediaClosed; if (null != _mediaElement) { _mediaElement.Cleanup(); _mediaElement = null; } }