2508181020

This commit is contained in:
jasonchenwork 2025-08-18 10:29:00 +08:00
parent 4f2f7cb370
commit cf9fe3a0e6

View File

@ -66,8 +66,8 @@ namespace DualScreenDemo
private const int GWL_EXSTYLE = -20;
private const int WS_EX_TOPMOST = 0x00000008;
private const uint SWP_NOZORDER = 0x0004;
private MediaService _mediaService0= new MediaService();
private MediaService _mediaService1= new MediaService();
private MediaService _mediaService0 = new MediaService();
private MediaService _mediaService1 = new MediaService();
public static OverlayForm overlayForm;
public bool isMuted = false;
@ -121,7 +121,7 @@ namespace DualScreenDemo
}
else
{
_mediaService0.SetVideoOutput(PrimaryForm.Instance.videoPanel.Handle,PrimaryForm.Instance.videoPanel.Width,PrimaryForm.Instance.videoPanel.Height);
_mediaService0.SetVideoOutput(PrimaryForm.Instance.videoPanel.Handle, PrimaryForm.Instance.videoPanel.Width, PrimaryForm.Instance.videoPanel.Height);
_mediaService1.SetVideoOutput(this.Handle, secondMonitor.Bounds.Width, secondMonitor.Bounds.Height);
PlayNextSong();
}
@ -333,14 +333,22 @@ namespace DualScreenDemo
{
string pathToPlay = song.getFile();
_mediaService0.LoadMedia(pathToPlay, 0);
_mediaService0.Mute(isMuted);
_mediaService1.LoadMedia(pathToPlay, song.isPublicSong ? 0 : 1);
_mediaService1.Mute(isMuted);
if (song.isPublicSong)
{
isVocalRemoved = true;
}
else
{
isVocalRemoved = false;
}
_ToggleVocalRemoval(isVocalRemoved);
// 音量處理
//SetVolume(isMuted ? 0 : previousVolume);
SetVolume(100+song.getBasic().getDbChange());
SetVolume(100 + song.getBasic().getDbChange());
if (isSyncToPrimaryMonitor) SyncToPrimaryMonitor();
return Task.CompletedTask;
}
@ -459,15 +467,12 @@ namespace DualScreenDemo
}
public bool Mute(bool isMuted)
{
if(isMuted){
if(isVocalRemoved){
_mediaService0.Mute(true);
_mediaService1.Mute(false);
}else{
_mediaService0.Mute(false);
_mediaService1.Mute(true);
}
}else{
if (isMuted)
{
_ToggleVocalRemoval(isVocalRemoved);
}
else
{
_mediaService0.Mute(false);
_mediaService1.Mute(false);
}
@ -488,18 +493,15 @@ namespace DualScreenDemo
private bool isVocalRemoved = true;
public void ToggleVocalRemoval()
{
isVocalRemoved=!isVocalRemoved;
if(isVocalRemoved){
_mediaService0.Mute(true);
_mediaService1.Mute(false);
}else{
_mediaService0.Mute(false);
_mediaService1.Mute(true);
}
//int trackIndex = isVocalRemoved ? 1:0;
//_mediaService.SetAudioTrack(trackIndex);
isVocalRemoved = _ToggleVocalRemoval(!isVocalRemoved);
OverlayForm.MainForm.ShowTopRightLabelTime(isVocalRemoved ? "無人聲" : "有人聲");
}
private bool _ToggleVocalRemoval(bool isVocal)
{
_mediaService0.Mute(isVocal);
_mediaService1.Mute(!isVocal);
return isVocal;
}
}
}