2508190933
This commit is contained in:
parent
f4b38cd06e
commit
cd25b63116
@ -13,9 +13,12 @@ namespace DualScreenDemo.Services
|
|||||||
{
|
{
|
||||||
Core.Initialize();
|
Core.Initialize();
|
||||||
_libVLC = new LibVLC(
|
_libVLC = new LibVLC(
|
||||||
|
|
||||||
|
"--vout=automatic",
|
||||||
|
"--h264-fps=25",
|
||||||
"--aout=directsound",
|
"--aout=directsound",
|
||||||
"--network-caching=300",
|
"--network-caching=250",
|
||||||
"--file-caching=300",
|
"--file-caching=250",
|
||||||
"--audio-time-stretch"
|
"--audio-time-stretch"
|
||||||
|
|
||||||
);
|
);
|
||||||
@ -26,9 +29,17 @@ namespace DualScreenDemo.Services
|
|||||||
#region Player Setup
|
#region Player Setup
|
||||||
public void SetVideoOutput(nint handle, int width, int height)
|
public void SetVideoOutput(nint handle, int width, int height)
|
||||||
{
|
{
|
||||||
_mediaPlayer.Hwnd = handle;
|
try
|
||||||
_mediaPlayer.AspectRatio = $"{width}:{height}";
|
{
|
||||||
_mediaPlayer.Scale = 0;
|
_mediaPlayer.Hwnd = handle;
|
||||||
|
_mediaPlayer.AspectRatio = $"{width}:{height}";
|
||||||
|
_mediaPlayer.Scale = 0;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine(ex.Message);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@ -38,20 +49,67 @@ namespace DualScreenDemo.Services
|
|||||||
|
|
||||||
public bool IsAtEnd()
|
public bool IsAtEnd()
|
||||||
{
|
{
|
||||||
var duration = _mediaPlayer.Media?.Duration ?? 0;
|
try
|
||||||
var time = _mediaPlayer.Time;
|
{
|
||||||
return duration > 0 && Math.Abs(duration - time) < 1000;
|
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)
|
public void LoadMedia(string filePath, int audioTrackIndex = 0)
|
||||||
{
|
{
|
||||||
_mediaPlayer.Stop();
|
try
|
||||||
_media?.Dispose();
|
{
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
_media = new Media(_libVLC, filePath, FromType.FromPath);
|
|
||||||
_media.AddOption(":audio-output=directsound");
|
|
||||||
_media.AddOption($":audio-track={audioTrackIndex}");
|
|
||||||
_mediaPlayer.Play(_media);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Play() => _mediaPlayer.Play();
|
public void Play() => _mediaPlayer.Play();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user