2508190933

This commit is contained in:
jasonchenwork 2025-08-19 09:34:10 +08:00
parent f4b38cd06e
commit cd25b63116

View File

@ -13,9 +13,12 @@ namespace DualScreenDemo.Services
{
Core.Initialize();
_libVLC = new LibVLC(
"--vout=automatic",
"--h264-fps=25",
"--aout=directsound",
"--network-caching=300",
"--file-caching=300",
"--network-caching=250",
"--file-caching=250",
"--audio-time-stretch"
);
@ -25,11 +28,19 @@ namespace DualScreenDemo.Services
#region Player Setup
public void SetVideoOutput(nint handle, int width, int height)
{
try
{
_mediaPlayer.Hwnd = handle;
_mediaPlayer.AspectRatio = $"{width}:{height}";
_mediaPlayer.Scale = 0;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
#endregion
#region Playback
@ -37,21 +48,68 @@ namespace DualScreenDemo.Services
public bool IsPlaying => _mediaPlayer.IsPlaying;
public bool IsAtEnd()
{
try
{
var duration = _mediaPlayer.Media?.Duration ?? 0;
var time = _mediaPlayer.Time;
return duration > 0 && Math.Abs(duration - time) < 1000;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return true;
}
}
// public void LoadMedia(string filePath, int audioTrackIndex = 0)
// {
// try
// {
// Console.WriteLine($"LoadMedia. in");
// _media?.ParseStop();
// Console.WriteLine($"LoadMedia. ParseStop");
// _mediaPlayer.Stop();
// Console.WriteLine($"LoadMedia. Stop");
// _media?.Dispose();
// Console.WriteLine($"LoadMedia. Dispose");
// _media = new Media(_libVLC, filePath, FromType.FromPath);
// _media.AddOption(":audio-output=directsound");
// _media.AddOption($":audio-track={audioTrackIndex}");
// _mediaPlayer.Play(_media);
// }
// catch (Exception ex)
// {
// Console.WriteLine(ex.Message);
// }
// }
public void LoadMedia(string filePath, int audioTrackIndex = 0)
{
try
{
Console.WriteLine($"LoadMedia. in");
_mediaPlayer.Stop();
_mediaPlayer.Media = null;
Console.WriteLine($"LoadMedia. Stop");
_media?.Dispose();
_media= null;
Console.WriteLine($"LoadMedia. Dispose");
_media = new Media(_libVLC, filePath, FromType.FromPath);
_media.AddOption(":audio-output=directsound");
_media.AddOption($":audio-track={audioTrackIndex}");
_mediaPlayer.Play(_media);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
public void Play() => _mediaPlayer.Play();