.DS_StoreBinary files differ
.vs/HDL_APP_Project/xs/UserPrefs.xml
@@ -1,35 +1,22 @@ <Properties StartupConfiguration="{09712674-2A38-407B-B1E2-560B2C352F9A}|Default"> <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/Music/View/DialogView.cs"> <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/Music/A31PlayMusicPage.cs"> <Files> <File FileName="HDL_ON/UI/Music/View/DialogView.cs" Line="1" Column="1" /> <File FileName="HDL_ON/UI/Music/MusicMain.cs" Line="200" Column="42" /> <File FileName="HDL_ON/UI/Music/SendMethod.cs" Line="150" Column="49" /> <File FileName="HDL_ON/UI/Music/A31MusicModel.cs" Line="217" Column="29" /> <File FileName="HDL_ON/UI/Music/A31PlayMusicPage.cs" Line="384" Column="19" /> <File FileName="HDL_ON/UI/Music/View/MusicView.cs" Line="211" Column="12" /> <File FileName="HDL_ON/UI/Music/View/DialogView.cs" Line="1141" Column="36" /> <File FileName="HDL_ON/UI/Music/MusicMain.cs" Line="330" Column="22" /> <File FileName="HDL_ON/UI/Music/SendMethod.cs" Line="291" Column="22" /> <File FileName="HDL_ON/UI/Music/A31MusicModel.cs" Line="1" Column="1" /> <File FileName="HDL_ON/UI/Music/A31PlayMusicPage.cs" Line="32" Column="5" /> </Files> <Pads> <Pad Id="ProjectPad"> <State name="__root__"> <Node name="HDL_APP_Project" expanded="True"> <Node name="HDL_ON" expanded="True"> <Node name="Common" expanded="True" /> <Node name="Entity" expanded="True" /> <Node name="UI" expanded="True"> <Node name="Music" expanded="True"> <Node name="View" expanded="True"> <Node name="Dialog_View.cs" selected="True" /> </Node> <Node name="View" expanded="True" /> <Node name="A31PlayMusicPage.cs" selected="True" /> </Node> <Node name="UI0-Public" expanded="True" /> <Node name="UI2" expanded="True"> <Node name="2-Classification" expanded="True" /> </Node> </Node> </Node> <Node name="HDL-ON_Android" expanded="True"> <Node name="Assets" expanded="True"> <Node name="Phone" expanded="True" /> </Node> </Node> </Node> .vs/HDL_APP_Project/xs/sqlite3/storage.ideBinary files differ
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-shmBinary files differ
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-walBinary files differ
HDL-ON_Android/Assets/Phone/.DS_StoreBinary files differ
HDL_ON/UI/Music/A31LocalMusicList.cs
@@ -23,9 +23,17 @@ topView.topNameBtn.TextID = StringId.localMusic; topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { if (updateSelectedMusicThread != null || updateSelectedMusicThread.IsAlive) if (updateSelectedMusicThread != null) { updateSelectedMusicThread.Abort(); try { if (updateSelectedMusicThread.IsAlive) { updateSelectedMusicThread.Abort(); ///关闭线程 } } catch { } } this.RemoveFromParent(); }; HDL_ON/UI/Music/A31LoveList.cs
@@ -21,9 +21,18 @@ topView.topNameBtn.TextID = StringId.myLove; topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { if (updateSelectedMusicThread != null || updateSelectedMusicThread.IsAlive) if (updateSelectedMusicThread != null) { updateSelectedMusicThread.Abort(); try { if (updateSelectedMusicThread.IsAlive) { updateSelectedMusicThread.Abort(); ///关闭线程 } } catch { } } this.RemoveFromParent(); }; HDL_ON/UI/Music/A31LoveMusicList.cs
@@ -28,9 +28,17 @@ topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { if (updateSelectedMusicThread != null || updateSelectedMusicThread.IsAlive) if (updateSelectedMusicThread != null) { updateSelectedMusicThread.Abort(); try { if (updateSelectedMusicThread.IsAlive) { updateSelectedMusicThread.Abort(); ///关闭线程 } } catch { } } this.RemoveFromParent(); }; HDL_ON/UI/Music/A31LoveRadioList.cs
@@ -27,9 +27,17 @@ topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { if (updateSelectedMusicThread != null || updateSelectedMusicThread.IsAlive) if (updateSelectedMusicThread != null) { updateSelectedMusicThread.Abort(); try { if (updateSelectedMusicThread.IsAlive) { updateSelectedMusicThread.Abort(); ///关闭线程 } } catch { } } this.RemoveFromParent(); }; HDL_ON/UI/Music/A31MyList.cs
@@ -20,9 +20,17 @@ topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { if (updateSelectedMusicThread == null || updateSelectedMusicThread.IsAlive) if (updateSelectedMusicThread != null) { updateSelectedMusicThread.Abort(); try { if (updateSelectedMusicThread.IsAlive) { updateSelectedMusicThread.Abort(); ///关闭线程 } } catch { } } this.RemoveFromParent(); }; HDL_ON/UI/Music/A31MyListMusic.cs
@@ -26,9 +26,17 @@ topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { if (updateSelectedMusicThread != null || updateSelectedMusicThread.IsAlive) if (updateSelectedMusicThread != null) { updateSelectedMusicThread.Abort(); try { if (updateSelectedMusicThread.IsAlive) { updateSelectedMusicThread.Abort(); ///关闭线程 } } catch { } } this.RemoveFromParent(); }; HDL_ON/UI/Music/A31PlayMusicPage.cs
@@ -14,10 +14,23 @@ public override void RemoveFromParent() { base.RemoveFromParent(); timerThread?.Abort(); Volume.VolumeChange = null; if (timerThread != null) { try { if (timerThread.IsAlive) { timerThread.Abort(); } } catch { } } } View.PlayView playView = new View.PlayView(); public void Show() { ///1秒定时更新状态 @@ -104,11 +117,6 @@ } A31MusicModel.Save(); ////保存 //string saveRoomUIName = "A31_" + A31MusicModel.Current.IPAddress; //Shared.IO.FileUtils.WriteFileByBytes(saveRoomUIName, //Shared.SimpleControl.CommonPage.MyEncodingUTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(A31MusicModel.Current))); }; ///切换播放模式点击事件; playView.playOrderBtn.MouseUpEventHandler += (sender, e) => @@ -234,11 +242,20 @@ ///移除界面 EventHandler<MouseEventArgs> removeFromParentView = (sen, e1) => { if (updateSelectedMusicThread != null && updateSelectedMusicThread.IsAlive) if (updateSelectedMusicThread != null) { updateSelectedMusicThread.Abort(); ///关闭线程 try { if (updateSelectedMusicThread.IsAlive) { updateSelectedMusicThread.Abort(); ///关闭线程 } } catch { } } popFra.RemoveFromParent(); }; backIextBtn.MouseUpEventHandler += removeFromParentView; @@ -318,15 +335,25 @@ { if (A31MusicModel.Current.ServerClientType == 1 && A31MusicModel.Current.Slave.slave_list.Count != 0) { ///主播放器 new View.DialogView { }.PlayerVolumeView(A31MusicModel.Current); //new View.DialogView { }.PlayerVolumeView(A31MusicModel.Current); var volumeView = new View.DialogView { }; volumeView.PlayerVolumeView(A31MusicModel.Current); volumeView.UpdateVolume(); } }; ///音量进度条点击事件 int startVolume =0;//之前的音量 EventHandler<int> progressClick = (sender, e) => { playView.volValueBtn.Text = playView.volSeekBar.Progress + "%"; SendMethod.ControlVolume(playView.volSeekBar.Progress, A31MusicModel.Current); A31MusicModel.Current.A31PlayStatus.vol = playView.volSeekBar.Progress.ToString(); if (startVolume != e) { startVolume = e; SendMethod.ControlVolume(e, A31MusicModel.Current); A31MusicModel.Current.A31PlayStatus.vol = e.ToString(); } }; playView.volSeekBar.OnProgressChangedEvent += progressClick; playView.volSeekBar.OnStopTrackingTouchEvent += progressClick; @@ -374,8 +401,14 @@ return; } playView.volSeekBar.Progress = volume; SendMethod.ControlVolume(playView.volSeekBar.Progress, A31MusicModel.Current); A31MusicModel.Current.A31PlayStatus.vol = playView.volSeekBar.Progress.ToString(); if (startVolume != volume) { startVolume = volume; SendMethod.ControlVolume(volume, A31MusicModel.Current); A31MusicModel.Current.A31PlayStatus.vol = volume.ToString(); } }; } @@ -389,6 +422,13 @@ { while (true) { //if (startVolume != endVolume) //{ // startVolume = endVolume; // SendMethod.ControlVolume(endVolume, A31MusicModel.Current); // A31MusicModel.Current.A31PlayStatus.vol = endVolume.ToString(); //} Application.RunOnMainThread(() => { try @@ -771,10 +811,17 @@ ///点击播放事件 clickBtn.MouseUpEventHandler += (sender, e) => { if (updateSelectedMusicThread != null && updateSelectedMusicThread.IsAlive) if (updateSelectedMusicThread != null) { updateSelectedMusicThread.Abort(); ///关闭线程 try { if (updateSelectedMusicThread.IsAlive) { updateSelectedMusicThread.Abort(); ///关闭线程 } } catch { } } System.Threading.Tasks.Task.Run(() => { HDL_ON/UI/Music/A31USBMusicList.cs
@@ -25,9 +25,17 @@ topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { if (updateSelectedMusicThread != null || updateSelectedMusicThread.IsAlive) if (updateSelectedMusicThread != null) { updateSelectedMusicThread.Abort(); try { if (updateSelectedMusicThread.IsAlive) { updateSelectedMusicThread.Abort(); ///关闭线程 } } catch { } } this.RemoveFromParent(); }; HDL_ON/UI/Music/SendMethod.cs
@@ -171,7 +171,7 @@ webClient.Headers.Add("CONTENT-TYPE", "text/xml; charset=\"utf-8\""); var recevieBytes = webClient.UploadData(new Uri("http://" + a31MusicModel.IPAddress + ":" + a31MusicModel.Port + "/upnp/control/rendertransport1"), "POST", System.Text.Encoding.UTF8.GetBytes("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><s:Envelope s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\"><s:Body><u:GetInfoEx xmlns:u=\"urn:schemas-upnp-org:service:AVTransport:1\"><InstanceID>0</InstanceID></u:GetInfoEx></s:Body></s:Envelope>")); a31MusicModel.LastDateTime = DateTime.Now; a31MusicModel.LastDateTime = DateTime.Now;//记录数据反馈的时间(因为有时间网络差数据不回复,导致当前播放音乐时间显示不正确) var se = System.Security.SecurityElement.FromString(System.Text.Encoding.UTF8.GetString(recevieBytes)).SearchForChildByTag("s:Body").SearchForChildByTag("u:GetInfoExResponse"); HDL_ON/UI/Music/View/.DS_StoreBinary files differ
HDL_ON/UI/Music/View/DialogView.cs
@@ -1135,25 +1135,38 @@ return a31player.Name; } } List<A31MusicModel> volumePlayList = new List<A31MusicModel>(); A31MusicModel currVolumePlay = null;//当前的播放器 int startVolume = 0;//之前的音量 int endVolume = 0;//现在的音量 /// <summary> /// 播放器音量的界面 /// </summary> /// <param name="a31player">主播放器</param> public void PlayerVolumeView(A31MusicModel a31player) public void PlayerVolumeView(A31MusicModel a31player) { #region //主控件 Dialog dialog = new Dialog() { //BackgroundColor = Color.PopupBackgroundColor, }; dialog.Show(); Dialog volumedialog = new Dialog(); volumedialog.Show(); //父控件 FrameLayout frame = new FrameLayout { }; dialog.AddChidren(frame); volumedialog.AddChidren(frame); frame.MouseUpEventHandler += (sen, e) => { dialog.Close(); volumedialog.Close(); if (updateVolumeThread != null) { try { if (updateVolumeThread.IsAlive) { updateVolumeThread.Abort(); } } catch { } } }; //白色快父控件 FrameLayout dialogFra = new FrameLayout() @@ -1188,7 +1201,18 @@ topFra.AddChidren(cancelnBtn); cancelnBtn.MouseUpEventHandler += (sen, e) => { dialog.Close(); volumedialog.Close(); if (updateVolumeThread != null) { try { if (updateVolumeThread.IsAlive) { updateVolumeThread.Abort(); } } catch { } } }; //标题控件 Button txetBtn = new Button @@ -1220,18 +1244,28 @@ topFra.AddChidren(confirmBtn); confirmBtn.MouseUpEventHandler += (sen, e) => { dialog.Close(); volumedialog.Close(); if (updateVolumeThread != null) { try { if (updateVolumeThread.IsAlive) { updateVolumeThread.Abort(); } } catch { } } }; VerticalScrolViewLayout verticalScrolViewLayout = new VerticalScrolViewLayout VerticalScrolViewLayout volumeViewLayout = new VerticalScrolViewLayout { Y = Application.GetRealHeight(58), Height = dialogFra.Height - Application.GetRealHeight(58), Width = Application.GetRealWidth(343), }; dialogFra.AddChidren(verticalScrolViewLayout); var playList = new List<A31MusicModel>(); dialogFra.AddChidren(volumeViewLayout); volumePlayList.Clear(); for (int i = 0; i < a31player.Slave.slave_list.Count; i++) { var slave = a31player.Slave.slave_list[i]; @@ -1240,19 +1274,19 @@ { music_If.ServerClientType = -1; music_If.A31PlayStatus.vol = slave.volume; playList.Add(music_If); volumePlayList.Add(music_If); } } playList.Add(a31player); volumePlayList.Add(a31player); for (int i = 0; i < playList.Count; i++) for (int i = 0; i < volumePlayList.Count; i++) { var player = playList[i]; var player = volumePlayList[i]; FrameLayout volumeFra = new FrameLayout { Height = Application.GetRealHeight(64), }; verticalScrolViewLayout.AddChidren(volumeFra); volumeViewLayout.AddChidren(volumeFra); Button volumeTextBtn = new Button { X = Application.GetRealWidth(28), @@ -1262,7 +1296,7 @@ TextColor = Color.MusicNoTxetColor, TextSize = TextSize.Text10, TextAlignment = TextAlignment.CenterLeft, }; volumeFra.AddChidren(volumeTextBtn); if (player.ServerClientType == -1) @@ -1286,11 +1320,11 @@ ThumbImagePath = "MusicIcon/progressIcon.png",//进度条按钮图标 ThumbImageHeight = Application.GetMinRealAverage(54),//进度条按钮图标的高度(默认正方形:宽和高一样) SeekBarViewHeight = Application.GetMinRealAverage(8),//进度条的高度 Progress=int.Parse(player.A31PlayStatus.vol), Progress = int.Parse(player.A31PlayStatus.vol), //ProgressChangeDelayTime= }; volumeFra.AddChidren(volSeekBar); Button valueBtn = new Button { X = Application.GetRealWidth(289), @@ -1304,25 +1338,32 @@ }; volumeFra.AddChidren(valueBtn); ///音量进度条点击事件 EventHandler<int> progressClick = (sender, e) => { if (currVolumePlay == null || (currVolumePlay != null && currVolumePlay.UniqueDeviceName != player.UniqueDeviceName)) { currVolumePlay = player; } endVolume = e; if (player.ServerClientType == -1) { valueBtn.Text = volSeekBar.Progress + "%"; SendMethod.ControlVolume(volSeekBar.Progress, player); //SendMethod.ControlVolume(volSeekBar.Progress, player); } else if (player.ServerClientType == 1) { for (int j = 0; j < playList.Count; j++) for (int j = 0; j < volumePlayList.Count; j++) { var music = playList[j]; var frameLayout = (FrameLayout)verticalScrolViewLayout.GetChildren(j); var music = volumePlayList[j]; var frameLayout = (FrameLayout)volumeViewLayout.GetChildren(j); var diyImageSeekBar = (DiyImageSeekBar)frameLayout.GetChildren(1); var button = (Button)frameLayout.GetChildren(2); diyImageSeekBar.Progress = volSeekBar.Progress; button.Text = volSeekBar.Progress + "%"; SendMethod.ControlVolume(volSeekBar.Progress, music); //SendMethod.ControlVolume(volSeekBar.Progress, music); } } }; @@ -1332,7 +1373,54 @@ #endregion } /// <summary> /// 定时音量并且发送命令 /// </summary> System.Threading.Thread updateVolumeThread; public void UpdateVolume() { if (updateVolumeThread != null) { try { if (updateVolumeThread.IsAlive) { updateVolumeThread.Abort(); } } catch { } } updateVolumeThread = new System.Threading.Thread(() => { try { while (true) { System.Threading.Thread.Sleep(500); if (startVolume == endVolume || currVolumePlay == null) { continue; } startVolume = endVolume; if (currVolumePlay.ServerClientType == -1) { SendMethod.ControlVolume(endVolume, currVolumePlay); } else if (currVolumePlay.ServerClientType == 1) { for (int j = 0; j < volumePlayList.Count; j++) { var music = volumePlayList[j]; SendMethod.ControlVolume(endVolume, music); } } } } catch { } }) { IsBackground = true }; updateVolumeThread.Start(); } } [System.Serializable]