using System; using System.Collections.Generic; using System.Text; using Shared; using Shared.SimpleControl.R; using Shared.SimpleControl.Pad.Music; using Shared.SimpleControl.Pad; using Shared.SimpleControl; namespace SmartHome.UI.SimpleControl.Pad.Music { /// /// 收音机播放界面 /// class RadioPage : FrameLayout { /// /// 停止/播放 /// Button btnPlay; /// /// 静音图标 /// Button btnMute; Button btnMusicvol; HorizontalSeekBar horizontalSeekBarVol; /// /// 频道 /// Button channel; /// /// 频率 /// Button Range; /// /// 当前界面对象 /// static RadioPage currentPage; FrameLayout middleFrameLayout = new FrameLayout () { Height = Application.GetRealHeight (1006 + 100), BackgroundImagePath = "MusicIcon/PlayBackgroun.png", }; MusicModel currentMusiceModel; public void Show (MusicModel musiceModel, FrameLayout SettingView) { if (currentPage != null) { currentPage.RemoveFromParent (); } currentPage = this; currentMusiceModel = musiceModel; //读取当前的音乐状态 readStatus (); AddChidren (new Button () { Height = Application.GetRealHeight (30), BackgroundColor = 0xFF262626, }); var topFrameLayout = new FrameLayout () { Height = Application.GetRealHeight (100), Y = Application.GetRealHeight (30), BackgroundColor = 0xFF121212, }; AddChidren (topFrameLayout); var back = new Button { Width = Application.GetMinRealAverage (72), Height = Application.GetMinRealAverage (89), X = Application.GetRealWidth (10), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "MusicIcon/PlayBack.png", }; topFrameLayout.AddChidren (back); back.MouseDownEventHandler += (sender, o) => { currentPage = null; //退出界面的时候,从父控件里移除掉 RemoveFromParent (); }; topFrameLayout.AddChidren (new Button { Width = Application.GetMinRealAverage (300), Height = Application.GetMinRealAverage (60), Text = currentMusiceModel.Name, Gravity = Gravity.Center, }); var set = new Button { Width = Application.GetRealWidth (76), Height = Application.GetRealHeight (66), X = Application.GetRealWidth (550), UnSelectedImagePath = "MusicIcon/PlayMusicset.png", Gravity = Gravity.CenterVertical, Tag = currentMusiceModel, }; topFrameLayout.AddChidren (set); set.MouseDownEventHandler += (sender, e) => { SourcePage sourcePage = new SourcePage { }; MainPage.MainFrameLayout.AddChidren (sourcePage); sourcePage.Show ((MusicModel)set.Tag, SettingView); }; middleFrameLayout.Y = topFrameLayout.Bottom; AddChidren (middleFrameLayout); topFrameLayout.BringToFront ();//隐藏底层 var sdname = new Button { Width = Application.GetRealWidth (200), Height = Application.GetRealHeight (60), TextID = MyInternationalizationString.MusicFM, X = Application.GetRealWidth (230), Y = Application.GetRealHeight (175 - 130) }; middleFrameLayout.AddChidren (sdname); var audio = new Button { Height = Application.GetRealHeight (248), Y = Application.GetRealHeight (380 - 130), UnSelectedImagePath = "MusicIcon/Radioaudio.png", }; middleFrameLayout.AddChidren (audio); var Radiogarden = new Button { Width = Application.GetRealWidth (319), Height = Application.GetRealHeight (315), X = Application.GetRealWidth (170), Y = Application.GetRealHeight (360 - 130), UnSelectedImagePath = "MusicIcon/Radiogarden.png", }; middleFrameLayout.AddChidren (Radiogarden); //频率 Range = new Button { Width = Application.GetMinRealAverage (350), Height = Application.GetMinRealAverage (80), //Text = "UnKown", TextSize = 25, X = Application.GetRealWidth (145), Y = Application.GetRealHeight (430 - 130), }; middleFrameLayout.AddChidren (Range); var Range1 = new Button { Width = Application.GetMinRealAverage (350), Height = Application.GetMinRealAverage (60), Text = "MHz", TextSize = 20, X = Application.GetRealWidth (150), Y = Application.GetRealHeight (510 - 130), }; middleFrameLayout.AddChidren (Range1); var down = new Button { Width = Application.GetRealWidth (103), Height = Application.GetRealHeight (103), X = Application.GetRealWidth (18), Y = Application.GetRealHeight (839 - 130), UnSelectedImagePath = "MusicIcon/Radiodown.png", SelectedImagePath = "MusicIcon/RadiodownSelected.png", }; middleFrameLayout.AddChidren (down); down.MouseDownEventHandler += Down_MouseDownEventHandler; down.MouseUpEventHandler += Down_MouseUpEventHandler; //频道 channel = new Button { Width = Application.GetMinRealAverage (350), Height = Application.GetMinRealAverage (60), //Text = "UnKown", TextSize = 15, X = Application.GetRealWidth (150), Y = Application.GetRealHeight (847 - 130), }; middleFrameLayout.AddChidren (channel); Button upward = new Button { Width = Application.GetRealWidth (103), Height = Application.GetRealHeight (103), X = Application.GetRealWidth (540), Y = Application.GetRealHeight (827 - 130), UnSelectedImagePath = "MusicIcon/Radioupward.png", SelectedImagePath = "MusicIcon/RadioupwardSelected.png", Tag = currentMusiceModel.Name, }; middleFrameLayout.AddChidren (upward); upward.MouseDownEventHandler += Upward_MouseDownEventHandler; upward.MouseUpEventHandler += Upward_MouseUpEventHandler; #region 上,下,暂停/播放 var tempFrameLayout = new FrameLayout { Width = LayoutParams.MatchParent, Height = Application.GetRealHeight (130), Y = Application.GetRealHeight (960 - 130) }; middleFrameLayout.AddChidren (tempFrameLayout); var prve = new Button { Width = Application.GetRealWidth (126), Height = Application.GetRealHeight (126), X = Application.GetRealWidth (127), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "MusicIcon/PlayPrve.png", SelectedImagePath = "MusicIcon/PlayPrveSelected.png", }; prve.MouseDownEventHandler += Prve_MouseDownEventHandler; prve.MouseUpEventHandler += Prve_MouseUpEventHandler; tempFrameLayout.AddChidren (prve); btnPlay = new Button { Width = Application.GetRealWidth (159), Height = Application.GetRealHeight (127), X = Application.GetRealWidth (260), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "MusicIcon/Playplay.png", SelectedImagePath = "MusicIcon/playmusicplaySelected.png", }; tempFrameLayout.AddChidren (btnPlay); btnPlay.MouseDownEventHandler += Play_MouseDownEventHandler; var next = new Button { Width = Application.GetRealWidth (126), Height = Application.GetRealHeight (126), X = Application.GetRealWidth (430), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "MusicIcon/PlayNext.png", SelectedImagePath = "MusicIcon/PlayNextSelected.png", }; next.MouseDownEventHandler += Next_MouseDownEventHandler; next.MouseUpEventHandler += Next_MouseUpEventHandler; tempFrameLayout.AddChidren (next); #endregion #region 音量+,-,静音 btnMute = new Button { Width = Application.GetRealWidth (107), Height = Application.GetRealHeight (127), X = Application.GetRealWidth (15), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "MusicIcon/PlayMute.png", SelectedImagePath = "MusicIcon/PlayMuteSelected.png", }; tempFrameLayout.AddChidren (btnMute); btnMute.MouseDownEventHandler += BtnMute_MouseDownEventHandler; btnMusicvol = new Button { Width = Application.GetRealWidth (107), Height = Application.GetRealHeight (127), X = Application.GetRealWidth (540), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "MusicIcon/PlayVoice.png", SelectedImagePath = "MusicIcon/PlayVoiceSelected.png", }; tempFrameLayout.AddChidren (btnMusicvol); btnMusicvol.MouseDownEventHandler += BtnMusicvol_MouseDownEventHandler; var ProgFrameLayout = new FrameLayout { Width = LayoutParams.MatchParent, Height = Application.GetRealHeight (100), Y = Application.GetRealHeight (1120 - 130), }; middleFrameLayout.AddChidren (ProgFrameLayout); var btnMusicvo2 = new Button { Width = Application.GetRealWidth (107), Height = Application.GetRealHeight (127), X = Application.GetRealWidth (15), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "MusicIcon/PlayVoice.png", }; ProgFrameLayout.AddChidren (btnMusicvo2); var frameLayout = new FrameLayout { Width = Application.GetRealWidth (490), Height = Application.GetRealHeight (50), Gravity = Gravity.CenterVertical, X = 150, }; ProgFrameLayout.AddChidren (frameLayout); //当前播放的音量 horizontalSeekBarVol = new HorizontalSeekBar { Width = Application.GetRealWidth (490 - 26), Height = Application.GetRealHeight (50), Radius = (uint)Application.GetRealHeight (25), X = Application.GetRealWidth (13), Gravity = Gravity.CenterVertical, Max = 79, BackgroundColor = 0xff525252, }; frameLayout.AddChidren (horizontalSeekBarVol); horizontalSeekBarVol.ProgressChanged += HorizontalSeekBarVol_ProgressChanged; #endregion } private void Upward_MouseUpEventHandler (object sender, MouseEventArgs e) { Button button = (Button)sender; button.IsSelected = false; } private void Upward_MouseDownEventHandler (object sender, MouseEventArgs e) { Button button = (Button)sender; button.IsSelected = true; send ("*S5PREVCHANNELSCAN"); } private void Down_MouseUpEventHandler (object sender, MouseEventArgs e) { Button button = (Button)sender; button.IsSelected = false; } private void Down_MouseDownEventHandler (object sender, MouseEventArgs e) { Button button = (Button)sender; button.IsSelected = true; send ("*S5NEXTCHANNELSCAN"); } private void Next_MouseDownEventHandler (object sender, MouseEventArgs e) { Button button = (Button)sender; button.IsSelected = true; send ("*S5NEXTCHANNEL"); } private void Prve_MouseDownEventHandler (object sender, MouseEventArgs e) { Button button = (Button)sender; button.IsSelected = true; send ("*S5PREVCHANNEL"); } private void Prve_MouseUpEventHandler (object sender, MouseEventArgs e) { Button button = (Button)sender; button.IsSelected = false; } private void Next_MouseUpEventHandler (object sender, MouseEventArgs e) { Button button = (Button)sender; button.IsSelected = false; } //点击静音之前的音量 string beforeVol = "30"; private void BtnMute_MouseDownEventHandler (object sender, MouseEventArgs e) { if (btnMute.IsSelected) { btnMute.IsSelected = false; send ("*Z1VOL" + beforeVol); } else { //静音之前先保存之前的音量,为还原音量 beforeVol = currentMusiceModel.CurVol; btnMute.IsSelected = true; send ("*Z1VOL79"); } } private void BtnMusicvol_MouseDownEventHandler (object sender, MouseEventArgs e) { Button button = sender as Button; if (button.IsSelected) { button.IsSelected = false; middleFrameLayout.Y += Application.GetRealHeight (100); } else { button.IsSelected = true; middleFrameLayout.Y -= Application.GetRealHeight (100); } } private void HorizontalSeekBarVol_ProgressChanged (object sender, int e) { int volValue = 79 - e; send ("*Z1VOL" + volValue); } private void Play_MouseDownEventHandler (object sender, MouseEventArgs e) { Button button = (Button)sender; if (button.IsSelected) { button.IsSelected = false; } else { button.IsSelected = true; } send ("*S5PLAYSTOP"); } void send (string command) { PlayerPage.dateTime = System.DateTime.Now; if (currentMusiceModel.SourceID != "5") { Control.ControlBytesSend (Command.ControlMusicModel, currentMusiceModel.SubnetID, currentMusiceModel.DeviceID, MusicModel.MusiceBytes ("*Z1SRC5")); } Control.ControlBytesSend (Command.ControlMusicModel, currentMusiceModel.SubnetID, currentMusiceModel.DeviceID, MusicModel.MusiceBytes (command)); } /// /// 读取音乐状态 /// void readStatus () { System.Threading.Tasks.Task.Run (() => { System.DateTime dateTime = System.DateTime.Now.AddSeconds (-10); while (Parent != null) { //等待1秒 System.Threading.Thread.Sleep (1000 * 1); Application.RunOnMainThread (() => { try { Range.Text = currentMusiceModel.curMusicListName.Replace ("MHz", ""); channel.Text = currentMusiceModel.curPlayMusicName.Replace (".mp3", ""); horizontalSeekBarVol.Progress = 79 - int.Parse (currentMusiceModel.CurVol); btnMute.IsSelected = currentMusiceModel.CurVol == "79" ? true : false; if (currentMusiceModel.PlayStatus == MusicModel.Status.Play) { btnPlay.IsSelected = true; } else { btnPlay.IsSelected = false; } } catch { } }); } }); } } }