问题描述
VLC.Dotnet.WPF 控件可拉伸纵向视频。我怎样才能控制不拉伸视频。风景视频播放正常,当我在手机上录制视频时,例如.mov 在纵向模式下会拉伸视频。
如何在不拉伸的情况下播放视频?有没有可以通过 CreatePlayer 方法传递的选项?
.xaml
<Grid>
<vlc:VlcControl x:Name="MediaPlayerOne"
VerticalAlignment="Center"
HorizontalAlignment="Center" />
</Grid>
.cs
var currentAssembly = Assembly.GetEntryAssembly();
var currentDirectory = new FileInfo(currentAssembly.Location).DirectoryName;
// Default installation path of VideoLAN.LibVLC.Windows
var libDirectory = new DirectoryInfo(Path.Combine(currentDirectory,"libvlc",IntPtr.Size == 4 ? "win-x86" : "win-x64"));
MediaPlayerOne.sourceProvider.CreatePlayer(libDirectory);
MediaPlayerOne.sourceProvider.MediaPlayer.Play(new Uri("text.mov"));
解决方法
您可以像这样尝试各种纵横比
MediaPlayerOne.Video.AspectRatio = "4:3";
MediaPlayerOne.Video.AspectRatio = "16:9";
,
要么 https://github.com/ZeBobo5/Vlc.DotNet/blob/develop/src/Vlc.DotNet.Wpf/VlcVideoSourceProvider.cs 此处存在问题,要么 libvlc 未发送正确的视频比例(即旋转前的原始尺寸,而您期望相反)。您可以尝试克隆 Vlc.DotNet 并进一步调查吗?