2509021146

遙控器訊號輸入判斷
This commit is contained in:
jasonchenwork 2025-09-02 11:46:50 +08:00
parent 5cb15a9422
commit e2a39fde2b
4 changed files with 82 additions and 46 deletions

View File

@ -30,10 +30,12 @@ namespace DualScreenDemo
switch (indata)
{
case "A261A4": // 輸入
HandleInput("a");
// HandleInput("a");
HandleRoomState("A261A4");
break;
case "A262A4": // 插播
HandleInput("b");
// HandleInput("b");
HandleRoomState("A262A4");
break;
case "A263A4":
ClearDisplay();
@ -50,17 +52,21 @@ namespace DualScreenDemo
NextPage();
break;
case "A271A4":
HandleNewSongAnnouncements();
// HandleNewSongAnnouncements();
HandleRoomState("A271A4");
break;
case "A273A4":
HandleHotSongAnnouncements();
// HandleHotSongAnnouncements();
HandleRoomState("A273A4");
break;
case "A267A4":
SkipToNextSong();
ClearDisplay();
// SkipToNextSong();
// ClearDisplay();
HandleRoomState("A267A4");
break;
case "A269A4":
ReplayCurrentSong();
// ReplayCurrentSong();
HandleRoomState("A269A4");
break;
// 原唱
case "A26CA4":
@ -78,8 +84,9 @@ namespace DualScreenDemo
ToggleMute();
break;
case "A274A4":
OverlayForm.MainForm.currentPage = 1;
HandleArtistAnnouncements();
// OverlayForm.MainForm.currentPage = 1;
// HandleArtistAnnouncements();
HandleRoomState("A274A4");
break;
case "A2B3A4":
SafeInvokeAction("A2B3A4",() => OverlayForm.MainForm.ShowTopRightLabelTime("音量 ↑ "));
@ -160,6 +167,44 @@ namespace DualScreenDemo
return Task.CompletedTask;
}
private void HandleRoomState(string action)
{
if (Program.room.IsOpen()==false)
{
switch (action)
{
case "A261A4": // 輸入
HandleInput("a");
break;
case "A262A4": // 插播
HandleInput("b");
break;
case "A271A4":
HandleNewSongAnnouncements();
break;
case "A273A4":
HandleHotSongAnnouncements();
break;
case "A267A4":
SkipToNextSong();
ClearDisplay();
break;
case "A269A4":
ReplayCurrentSong();
break;
case "A274A4":
OverlayForm.MainForm.currentPage = 1;
HandleArtistAnnouncements();
break;
default:
break;
}
}
}
private void SafeInvokeAction(string commandKey, Action action)
{
// 真正執行 UI 操作

View File

@ -150,11 +150,9 @@ namespace DualScreenDemo
{
Bitmap originalImage = new Bitmap(imagePath);
Rectangle cropArea = new Rectangle(856, 422, 342, 295);
pictureBoxSceneSoundEffects.Image = originalImage;
ResizeAndPositionPictureBox(pictureBoxSceneSoundEffects, cropArea.X, cropArea.Y, cropArea.Width, cropArea.Height);
ResizeAndPositionPictureBox(pictureBoxSceneSoundEffects, 856, 422, 342, 295);
pictureBoxSceneSoundEffects.Visible = true;
}

View File

@ -152,7 +152,7 @@ namespace DualScreenDemo
private Timer autoRefreshTimer;
private Timer timerCountdown;
string Rtime;
bool Gaintest = true;
bool Gaintest = false;
//private Label pageNumberLabel; // 添加頁碼標籤
public PrimaryForm()
{
@ -1401,7 +1401,6 @@ namespace DualScreenDemo
using (Graphics g = Graphics.FromImage(bmp))
{
g.DrawImage(source, 0, 0, section, GraphicsUnit.Pixel);
}

View File

@ -354,16 +354,6 @@ namespace DualScreenDemo
PrimaryForm.Instance.videoView0.Visible = true;
//影片畫面播放器載入media設置聲道
_mediaService1.LoadMedia(pathToPlay, song.isPublicSong ? 0 : 1);
//公播時註銷原唱按鈕事件
if (song.isPublicSong)
{
PrimaryForm.Instance.originalSongButton.Click -= PrimaryForm.Instance.OriginalSongButton_Click;
}
else
{
PrimaryForm.Instance.originalSongButton.Click -= PrimaryForm.Instance.OriginalSongButton_Click;
PrimaryForm.Instance.originalSongButton.Click += PrimaryForm.Instance.OriginalSongButton_Click;
}
isVocalRemoved = true;
if (isMuted) { Mute(true); }
@ -521,19 +511,23 @@ namespace DualScreenDemo
private bool isVocalRemoved = true;
public void ToggleVocalRemoval()
{
if (isVocalRemoved)
if (SongList.Current().isPublicSong == false)
{
_mediaService1.Player.Select(TrackType.Audio, "audio/2");
if (isVocalRemoved)
{
_mediaService1.Player.Select(TrackType.Audio, "audio/2");
isVocalRemoved = false;
isVocalRemoved = false;
}
else
{
_mediaService1.Player.Select(TrackType.Audio, "audio/1,audio/3");
// _mediaService1.Player.Select(TrackType.Audio, "audio/3");
isVocalRemoved = true;
}
OverlayForm.MainForm.ShowTopRightLabelTime(isVocalRemoved ? "無人聲" : "有人聲");
}
else
{
_mediaService1.Player.Select(TrackType.Audio, "audio/1,audio/3");
// _mediaService1.Player.Select(TrackType.Audio, "audio/3");
isVocalRemoved = true;
}
OverlayForm.MainForm.ShowTopRightLabelTime(isVocalRemoved ? "無人聲" : "有人聲");
}
}