Я не уверен, почему вы используете Media Element, когда у вас есть контроль VLC. В любом случае, убедитесь, что путь к источнику медиаэлемента " Resources / Global_Large_crate_opens.mp3 " существует. Вы уверены, что это косая черта? обычно в Windows пути используют обратную косую черту. Также, если ваш путь абсолютен, вам нужно определить его следующим образом:
Uri thisUri = new Uri(movOld.Source.ToString(), UriKind.Absolute);
vlcPlayer.MediaPlayer.Play(thisUri);
Проблема только в вашем пути к источнику медиаэлемента. Просто убедитесь, что все, что вы положили там, существует и доступно.
Обновление:
Недавно я работал с элементом управления VLC, где я создал свой собственный элемент управления пользователя, чтобы скрыть логику библиотеки VLC, и раскрыл путь к файлу и другие свойства зависимостей, чтобы указать их из XAML.
Вы можете попробовать использовать минимальную версию этого элемента управления в своем приложении.
public partial class VLCControl : UserControl
{
public VLCControl()
{
InitializeComponent();
var currentDirectory = AppDomain.CurrentDomain.BaseDirectory;
string platform = Environment.Is64BitProcess ? "x64" : "x86";
var dirPath = System.IO.Path.Combine(currentDirectory, "vlclib", platform);
vlc.MediaPlayer.VlcLibDirectory = new DirectoryInfo(dirPath);
vlc.MediaPlayer.EndInit();
}
public void Play()
{
if (vlc.IsInitialized && !String.IsNullOrWhiteSpace(FilePath))
{
var options = new string[]
{
String.Format("input-repeat={0}", Repeat)
};
vlc.MediaPlayer.SetMedia(new Uri(FilePath), options);
if (!String.IsNullOrWhiteSpace(AspectRatio))
vlc.MediaPlayer.Video.AspectRatio = AspectRatio;
vlc.MediaPlayer.Play();
}
}
public void Stop()
{
vlc.MediaPlayer.Stop();
}
public string AspectRatio
{
get { return (string)GetValue(AspectRatioProperty); }
set { SetValue(AspectRatioProperty, value); }
}
public static readonly DependencyProperty AspectRatioProperty =
DependencyProperty.Register("AspectRatio", typeof(string), typeof(VLCControl));
public string FilePath
{
get { return (string)GetValue(FilePathProperty); }
set { SetValue(FilePathProperty, value); }
}
public static readonly DependencyProperty FilePathProperty =
DependencyProperty.Register("FilePath", typeof(string), typeof(VLCControl));
public int Repeat
{
get { return (int)GetValue(RepeatProperty); }
set { SetValue(RepeatProperty, value); }
}
public static readonly DependencyProperty RepeatProperty =
DependencyProperty.Register("Repeat", typeof(int), typeof(VLCControl), new PropertyMetadata(-1));
private void vlc_Loaded(object sender, RoutedEventArgs e)
{
Play();
}
}
Код файла XAML:
<UserControl x:Class="VLCControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
xmlns:vlc="clr-namespace:Vlc.DotNet.Wpf;assembly=Vlc.DotNet.Wpf"
d:DesignHeight="300" d:DesignWidth="300" >
<vlc:VlcControl x:Name="vlc" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Loaded="vlc_Loaded"/>
</UserControl>
Если это помогло вам, то не забудьте принять ответ:)