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)));
        }
Пример #6
0
        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);
        }
Пример #7
0
 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);
     }
 }
Пример #8
0
 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;
            }
        }