Пробовал плеер на DirectX 1.0.2902.0
- умирает от MPEG-2 TS
(библиотеки Microsoft.DirectX.AudioVideoPlayback.dll
и Microsoft.DirectX.dll
)
Пробовал плеер на Interop.QuartzTypeLib.dll
- умирает от MPEG-2 TS
(источник)
Дошел до варианта с MediaElement
(источник), грубо закоментировал dialog.Filter = "WMV file (.wm)|*.wmv";
- и о чудо MPEG-2 TS
зашевелился, НО плывет и умирает. Как добиться нормального проигрывания MPEG-2 TS
?
XAML:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="320*"/>
<RowDefinition Height="50*"/>
</Grid.RowDefinitions>
<MediaElement x:Name="MediaPlayer" Grid.RowSpan="1" LoadedBehavior="Manual"/>
<StackPanel Orientation="Horizontal" Grid.Row="1" HorizontalAlignment="Center">
<Button x:Name="btnPlay" Content="Play" Click="btnPlay_Click" Width="50" Height="25" Margin="5"/>
<Button x:Name="btnStop" Content="Stop" Click="btnStop_Click" Width="50" Height="25" Margin="5"/>
<Button x:Name="btnMoveBack" Content="Back" Click="btnMoveBack_Click" Width="50" Height="25" Margin="5"/>
<Button x:Name="btnMoveForward" Content="Forward" Click="btnMoveForward_Click" Width="50" Height="25" Margin="5"/>
<Button x:Name="btnOpen" Content="Open" Click="btnOpen_Click" Width="50" Height="25" Margin="5"/>
</StackPanel>
C#
public MainWindow()
{
InitializeComponent();
IsPlaying(false);
}
private void IsPlaying(bool flag)
{
btnPlay.IsEnabled = flag;
btnStop.IsEnabled = flag;
btnMoveBack.IsEnabled = flag;
btnMoveForward.IsEnabled = flag;
}
private void btnPlay_Click(object sender, RoutedEventArgs e)
{
IsPlaying(true);
if (btnPlay.Content.ToString() == "Play")
{
MediaPlayer.Play();
btnPlay.Content = "Pause";
}
else
{
MediaPlayer.Pause();
btnPlay.Content = "Play";
}
}
private void btnStop_Click(object sender, RoutedEventArgs e)
{
MediaPlayer.Pause();
btnPlay.Content = "Play";
IsPlaying(false);
btnPlay.IsEnabled = true;
}
private void btnMoveBack_Click(object sender, RoutedEventArgs e)
{
MediaPlayer.Position -= TimeSpan.FromSeconds(10);
}
private void btnMoveForward_Click(object sender, RoutedEventArgs e)
{
MediaPlayer.Position += TimeSpan.FromSeconds(10);
}
private void btnOpen_Click(object sender, RoutedEventArgs e)
{
// Configure open file dialog box
Microsoft.Win32.OpenFileDialog dialog = new Microsoft.Win32.OpenFileDialog();
dialog.FileName = "Videos"; // Default file name
dialog.DefaultExt = ".WMV"; // Default file extension
//dialog.Filter = "WMV file (.wm)|*.wmv"; // Filter files by extension
// Show open file dialog box
Nullable<bool> result = dialog.ShowDialog();
// Process open file dialog box results
if (result == true)
{
// Open document
MediaPlayer.Source = new Uri(dialog.FileName);
btnPlay.IsEnabled = true;
}
}
В Windows media player MPEG-2 TS
воспроизводится нормально.
И в плеере на MediaElement
проблем с mp4
нет.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Подскажите, как лучше реализовывать интерфейс, где нужно по нажатию кнопки отобразить совершенно другие данные пользователю, оставив при...
У меня есть основная ViewModel которая содержит в себе коллекцию Group ViewModels
Есть сайт, суть сайта заключается в том что человек вставляет свою фотографию и сайт накручивает лайкиДо сайта можно достучаться через httр://example
Нужно написать на С# программу, которая будет определять над каким окном Windows сейчас находится курсор и обводить это окно рамкой (указывая...