using System; using System.Collections.Generic; using System.Text; using Shared; using Shared.SimpleControl.Phone.Music; using Shared.SimpleControl.R; using Shared.SimpleControl; namespace SmartHome.UI.SimpleControl.Phone { /// /// 收音机播放界面 /// class A31RadioPage : FrameLayout { /// /// 停止/播放 /// Button btnPlay; /// /// 静音图标 /// Button btnMute; Button btnMusicvol; HorizontalSeekBar horizontalSeekBarVol; /// /// 频道 /// Button channel; /// /// 频率 /// Button Range; /// /// 当前界面对象 /// static A31RadioPage currentPage; FrameLayout middleFrameLayout = new FrameLayout() { Height = Application.GetRealHeight(1006 + 100), BackgroundImagePath = "MusicIcon/PlayBackgroun.png", }; A31MusicModel currentMusiceModel; public void Show(A31MusicModel a31musiceModel) { if (currentPage != null) { currentPage.RemoveFromParent(); } currentPage = this; currentMusiceModel = a31musiceModel; //读取当前的音乐状态 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) => { A31MusicSourcePage a31sourcePage = new A31MusicSourcePage { }; MainPage.MainFrameLayout.AddChidren(a31sourcePage); a31sourcePage.Show((A31MusicModel)set.Tag); }; middleFrameLayout.Y = topFrameLayout.Bottom; AddChidren(middleFrameLayout); topFrameLayout.BringToFront();//隐藏底层 var sdname = new Button { Width = Application.GetRealWidth(200), Height = Application.GetRealHeight(60), TextID = MyInternationalizationString.MusicFM, TextSize = 15, 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), 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/PlayplaySelected.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 = 100, 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; sendCommand("*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; sendCommand("*S5NEXTCHANNELSCAN"); } private void Next_MouseDownEventHandler(object sender, MouseEventArgs e) { Button button = (Button)sender; button.IsSelected = true; sendCommand("next"); } private void Prve_MouseDownEventHandler(object sender, MouseEventArgs e) { Button button = (Button)sender; button.IsSelected = true; sendCommand("prev"); } 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; } private void BtnMute_MouseDownEventHandler(object sender, MouseEventArgs e) { if (btnMute.IsSelected) { btnMute.IsSelected = false; sendCommand("mute:0"); } else { btnMute.IsSelected = true; sendCommand("mute:1"); } } 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) { sendCommand("vol:" + horizontalSeekBarVol.Progress); currentMusiceModel.A31PlayStatus.vol = horizontalSeekBarVol.Progress.ToString(); } private void Play_MouseDownEventHandler(object sender, MouseEventArgs e) { Button button = (Button)sender; if (button.IsSelected) { button.IsSelected = false; sendCommand("pause"); currentMusiceModel.A31PlayStatus.status = "pause"; } else { button.IsSelected = true; sendCommand("resume"); currentMusiceModel.A31PlayStatus.status = "play"; } } void sendCommand(string coutn) { System.Threading.Tasks.Task.Run(() => { Shared.Net.MyWebClient webClient = new Shared.Net.MyWebClient(); try { byte[] recevieBytes1 = webClient.DownloadData(new Uri("http://" + currentMusiceModel.IPAddress + "/httpapi.asp?command=setPlayerCmd:" + coutn + "")); } catch (Exception ex) { //this.IPAddress = ex.Message; } }); } /// /// 读取音乐状态 /// 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=int.Parse(currentMusiceModel.A31PlayStatus.vol); btnMute.IsSelected = currentMusiceModel.CurVol == "0" ? true : false; if(currentMusiceModel.PlayStatus == MusicModel.Status.Play) { btnPlay.IsSelected = true; } else { btnPlay.IsSelected = false; } } catch { } }); } }); } } }