Hi,
I got an error with the RadMediaPlay.
Here is the Stacktrace :
à Telerik.Windows.Controls.RadMediaPlayer.HandleCanExecuteJumpCommands(RadMediaPlayer player, ICommand command, Object parameter)
à Telerik.Windows.Controls.RadMediaPlayer.MediaCommandCanExecute(Object sender, CanExecuteRoutedEventArgs e)
à Telerik.Windows.Controls.CanExecuteRoutedEventArgs.InvokeEventHandler(Delegate genericHandler, Object target)
à Telerik.Windows.RadRoutedEventArgs.InvokeHandler(Delegate handler, Object target)
à Telerik.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RadRoutedEventArgs routedEventArgs)
à Telerik.Windows.RouteItem.InvokeHandler(RadRoutedEventArgs routedEventArgs)
à Telerik.Windows.EventRoute.InvokeHandlersImpl(Object source, RadRoutedEventArgs args, Boolean raisedAgain)
à Telerik.Windows.EventRoute.InvokeHandlers(Object source, RadRoutedEventArgs args)
à Telerik.Windows.RadRoutedEventHelper.RaiseEvent(DependencyObject element, RadRoutedEventArgs args)
à Telerik.Windows.DependencyObjectExtensions.RaiseEvent(DependencyObject element, RadRoutedEventArgs e)
à Telerik.Windows.Controls.RoutedCommand.CanExecute(Object parameter, UIElement target)
à Telerik.Windows.Controls.RadButton.CanExecuteApply()
à Telerik.Windows.Controls.RadButton.CanExecuteChanged(Object sender, EventArgs e)
à Telerik.Windows.Controls.WeakEventHandlerManager.CallHandler(Object sender, EventHandler eventHandler)
à Telerik.Windows.Controls.WeakEventHandlerManager.CallWeakReferenceHandlers(Object sender, List`1 handlers)
à Telerik.Windows.Controls.CommandManager.RaiseRequerySuggested(Object obj)
à Telerik.Windows.Controls.CommandManager.<RaiseRequerySuggested>b__5()
My scenario is to open player in a window, the playlist is loaded dynamically.
First, I created a usercontrol that uses the RadMediaPlayer. His name is PlayerControl.
Here is a part of the UserControl :
A ViewModel is used to set the RadMediaPlayer's properties .
The ViewModel contains some features to add and remove MediaItems from the RadMediaPlayer.
Finally, I try to open the window that contains the usercontrol.
It works for 3 or 4 times (this is random) then I got the error
Can you help me.
Best ragards,
C.Leoni.
I got an error with the RadMediaPlay.
Here is the Stacktrace :
à Telerik.Windows.Controls.RadMediaPlayer.HandleCanExecuteJumpCommands(RadMediaPlayer player, ICommand command, Object parameter)
à Telerik.Windows.Controls.RadMediaPlayer.MediaCommandCanExecute(Object sender, CanExecuteRoutedEventArgs e)
à Telerik.Windows.Controls.CanExecuteRoutedEventArgs.InvokeEventHandler(Delegate genericHandler, Object target)
à Telerik.Windows.RadRoutedEventArgs.InvokeHandler(Delegate handler, Object target)
à Telerik.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RadRoutedEventArgs routedEventArgs)
à Telerik.Windows.RouteItem.InvokeHandler(RadRoutedEventArgs routedEventArgs)
à Telerik.Windows.EventRoute.InvokeHandlersImpl(Object source, RadRoutedEventArgs args, Boolean raisedAgain)
à Telerik.Windows.EventRoute.InvokeHandlers(Object source, RadRoutedEventArgs args)
à Telerik.Windows.RadRoutedEventHelper.RaiseEvent(DependencyObject element, RadRoutedEventArgs args)
à Telerik.Windows.DependencyObjectExtensions.RaiseEvent(DependencyObject element, RadRoutedEventArgs e)
à Telerik.Windows.Controls.RoutedCommand.CanExecute(Object parameter, UIElement target)
à Telerik.Windows.Controls.RadButton.CanExecuteApply()
à Telerik.Windows.Controls.RadButton.CanExecuteChanged(Object sender, EventArgs e)
à Telerik.Windows.Controls.WeakEventHandlerManager.CallHandler(Object sender, EventHandler eventHandler)
à Telerik.Windows.Controls.WeakEventHandlerManager.CallWeakReferenceHandlers(Object sender, List`1 handlers)
à Telerik.Windows.Controls.CommandManager.RaiseRequerySuggested(Object obj)
à Telerik.Windows.Controls.CommandManager.<RaiseRequerySuggested>b__5()
My scenario is to open player in a window, the playlist is loaded dynamically.
First, I created a usercontrol that uses the RadMediaPlayer. His name is PlayerControl.
Here is a part of the UserControl :
<
telerik:RadMediaPlayer
x:Name
=
"player"
Loaded
=
"PlayerLoaded"
Unloaded
=
"PlayerUnloaded"
MediaOpened
=
"PlayerMediaOpened"
MediaEnded
=
"PlayerMediaEnded"
Header
=
"{Binding RelativeSource={RelativeSource Self}, Path=MediaElement}"
ItemsSource
=
"{Binding Items}"
AutoPlay
=
"{Binding AutoPlay}"
IsAutoPlaylistAdvance
=
"{Binding IsAutoPlaylistAdvance}"
IsAutoReverse
=
"{Binding IsAutoReverse}"
IsPlaylistVisible
=
"{Binding IsPlaylistVisible}"
Height
=
"{Binding VideoHeight}"
Width
=
"{Binding VideoWidth}"
SelectedIndex
=
"{Binding SelectedIndex, Mode=TwoWay}"
SelectedItem
=
"{Binding SelectedMediaItem, Mode=TwoWay}"
IsVideoPanelHidden
=
"{Binding IsVideoPanelHidden}"
IsVideoPanelPinned
=
"{Binding IsVideoPanelPinned }"
HeaderTemplate
=
"{Binding HeaderTemplate}"
>
<
telerik:RadMediaPlayer.ItemTemplateSelector
>
<
Template:MediaTemplateSelector
>
<
Template:MediaTemplateSelector.MediaItemTemplate
>
<
DataTemplate
>
<
telerik:ContainerBinding.ContainerBindings
>
<
telerik:ContainerBindingCollection
>
<
telerik:ContainerBinding
PropertyName
=
"Source"
Binding
=
"{Binding Source}"
/>
<
telerik:ContainerBinding
PropertyName
=
"IsSelected"
Binding
=
"{Binding IsSelected,Mode=TwoWay}"
/>
<
telerik:ContainerBinding
PropertyName
=
"Tag"
Binding
=
"{Binding}"
/>
</
telerik:ContainerBindingCollection
>
</
telerik:ContainerBinding.ContainerBindings
>
<
StackPanel
HorizontalAlignment
=
"Left"
Orientation
=
"Horizontal"
>
<
Image
Source
=
"{Binding Image}"
Stretch
=
"Uniform"
Margin
=
"4"
/>
<
TextBlock
Text
=
"{Binding Title}"
VerticalAlignment
=
"Center"
Margin
=
"4"
/>
</
StackPanel
>
</
DataTemplate
>
</
Template:MediaTemplateSelector.MediaItemTemplate
>
<
Template:MediaTemplateSelector.VideoMediaItemTemplate
>
<
DataTemplate
>
<
telerik:ContainerBinding.ContainerBindings
>
<
telerik:ContainerBindingCollection
>
<
telerik:ContainerBinding
PropertyName
=
"Source"
Binding
=
"{Binding Source}"
/>
<
telerik:ContainerBinding
PropertyName
=
"IsSelected"
Binding
=
"{Binding IsSelected,Mode=TwoWay}"
/>
<
telerik:ContainerBinding
PropertyName
=
"Tag"
Binding
=
"{Binding}"
/>
<
telerik:ContainerBinding
PropertyName
=
"IsStreamingSource"
Binding
=
"{Binding IsStreamingSource}"
/>
<
telerik:ContainerBinding
PropertyName
=
"VideoWidth"
Binding
=
"{Binding VideoWidth}"
/>
<
telerik:ContainerBinding
PropertyName
=
"VideoHeight"
Binding
=
"{Binding VideoHeight}"
/>
<
telerik:ContainerBinding
PropertyName
=
"VideoStretch"
Binding
=
"{Binding VideoStretch}"
/>
</
telerik:ContainerBindingCollection
>
</
telerik:ContainerBinding.ContainerBindings
>
<
StackPanel
HorizontalAlignment
=
"Left"
Orientation
=
"Horizontal"
>
<
Image
Source
=
"{Binding Image}"
Stretch
=
"Uniform"
Margin
=
"4"
/>
<
TextBlock
Text
=
"{Binding Title}"
VerticalAlignment
=
"Center"
Margin
=
"4"
/>
</
StackPanel
>
</
DataTemplate
>
</
Template:MediaTemplateSelector.VideoMediaItemTemplate
>
</
Template:MediaTemplateSelector
>
</
telerik:RadMediaPlayer.ItemTemplateSelector
>
</
telerik:RadMediaPlayer>
A ViewModel is used to set the RadMediaPlayer's properties .
The ViewModel contains some features to add and remove MediaItems from the RadMediaPlayer.
public ObservableCollection<
MediaItem
> Items { get; internal set; }
public void AddMediaItem( MediaItem item )
{
Items.Add(item);
}
public void RemoveMediaItem( MediaItem item )
{
if (Items.Contains(item))
{
Items.Remove(item);
}
}
public void Clear()
{
Items.Clear();
}
Finally, I try to open the window that contains the usercontrol.
It works for 3 or 4 times (this is random) then I got the error
// Template declared as a resource
<
DataTemplate
x:Key
=
"PlayerVideoTemplate"
>
<
Grid
>
<
Player:PlayerControl
x:Name
=
"PlayerControl"
HorizontalAlignment
=
"Left"
Controller
=
"{Binding Controller}"
/>
</
Grid
>
</
DataTemplate
>
// The code
// ViewModel for the PlayControl usercontrol
Controller = new PlayerController
{
SelectedIndex = 0,
AutoPlay = true,
IsAutoPlaylistAdvance = true,
ShowCommandsPanel = true,
MediaEnded = LectureMediaTerminee,
MediaOpened = LectureMedia
};
// add a video to the playlist
_playList.AddLast(new VideoMediaItem
{
Source = videoSource,
Title = SelectedAppointment.ElpTitreDiff,
VideoStretch = Stretch.Fill
});
// add the first value
Controller.AddMediaItem(_playList.First.Value);
// diplay the window
var window = new RadWindow
{
DataContext = this,
Content = ((DataTemplate)Application.Current.Resources["PlayerVideoTemplate"]).LoadContent(),
MaxWidth = 1024,
MaxHeight = 768,
Header = "Player vidéo",
WindowStartupLocation = WindowStartupLocation.CenterScreen
};
window.Show();
Can you help me.
Best ragards,
C.Leoni.