internal void AddSong(Song song) { /*是否允许重复添加歌曲*/ if (!CanAddSame) { foreach (ListViewItem lviOld in this.lv_OrderdSongs.Items) { if (lviOld.Text.Equals(song.SongName)) { MessageBox.Show("已有此歌,无法添加"); return; } } } ListViewItem lvi = new ListViewItem(song.SongName); lvi.SubItems.Add(GetStateString(song)); int index = PlayList.AddSong(song); if (index == -1) { MessageBox.Show("已经超过50首,暂时无法添加"); return; } lvi.Tag = index; this.lv_OrderdSongs.Items.Add(lvi); }
/// <summary> /// 点播一首歌曲 /// </summary> /// <param name="song">新点播的歌曲</param> /// <returns>插入时所在下标</returns> public static int AddSong(Song song) { int index = -1; for (int i = 0; i < SongList.Length; i++) { if (SongList[i] == null) { SongList[i] = song; index = i; break; } } return index; }
/// <summary> /// 添加歌曲 /// </summary> /// <param name="song"></param> internal void AddSong(Song song) { this.fOrdered.AddSong(song); }
/// <summary> /// 添加歌曲 /// </summary> private void AddSong() { try { Song song = new Song(); song.SongName = this.dgv_SongNameAndSinger.SelectedRows[0].Cells["cln_songName"].Value.ToString(); song.SongURL = KTVUtil.SongPath + this.dgv_SongNameAndSinger.SelectedRows[0].Cells["cln_songUrl"].Value.ToString(); song.PlayState = SongPlayState.unplayed; song.Song_id = this.dgv_SongNameAndSinger.SelectedRows[0].Cells["cln_songId"].Value.ToString(); _FrmParent.AddSong(song); } #if DEBUG catch (Exception e) { Console.WriteLine(e.Message); #else catch { #endif } }
/// <summary> /// 通过歌曲播放状态来显示友好信息 /// </summary> /// <param name="song">歌曲</param> /// <returns>状态友好信息</returns> private static string GetStateString(Song song) { if (song == null) { return string.Empty; } switch (song.PlayState) { case SongPlayState.played: return "已播放"; case SongPlayState.again: return "再次播放"; case SongPlayState.cut: return "切歌"; case SongPlayState.unplayed: return "未播放"; case SongPlayState.playing: return "正在播放"; case SongPlayState.pause: return "暂停"; case SongPlayState.stop: return "已停止"; case SongPlayState.error: return "格式不支持"; case SongPlayState.notexist: return "文件不存在"; default: return "未知"; } }
/// <summary> /// 获取所在下标 /// </summary> /// <param name="song"></param> /// <returns></returns> public static int GetSongIndex(Song song) { if (song == null) { return -2; } for (int i = 0; i < SongList.Length; i++) { if (song == SongList[i]) { return i; } } return -1; }
private void UpdatePlayCount(Song song) { //song.Song_id; string sql = DBHelper.FormatUpdateOneTable("song_info", new string[] { "song_play_count" }, new string[] { "1" }) + DBHelper.FormatWHERE(new string[] { "song_id" }, new string[] { song.Song_id }, new DBHelper.WHERE[0], new DBHelper.Relation[] { DBHelper.Relation.Equal }); sql = sql.Replace("= N'1'", "+= 1"); #if DEBUG Console.WriteLine(sql); #endif new DBHelper().UpdateDB(sql); }
/// <summary> /// 下一首 /// </summary> private void GoNext() { this.ax_WMP.URL = string.Empty; if (this._song.PlayState != SongPlayState.notexist) { if (!File.Exists(this._song.SongURL)) { this._song.SetFileNotExist(); } else { this._song.SetSongPlayed(); } } this._song = null; if (this.song != null) { if (this._song.PlayState == SongPlayState.notexist) { return; } this.ax_WMP.URL = this.song.SongURL; UpdatePlayCount(this._song); } }