实例介绍
【实例简介】
【实例截图】
【核心代码】
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.IO;
using System.Threading;
namespace MusicPlay_美化_
{
public partial class MainFrm : Form
{
public MainFrm()
{
InitializeComponent();
}
#region //定义一些全局变量
NotifyIcon notify = new NotifyIcon(); //定义托盘
private string musicUrl=null;
private bool playState=false; //判断播放状态
private bool listFrmShow = true; //判断播放列表框是否显示
private int selectedIndex; //记录选择的索引
private int playMode; //记录播放模式
private int startX, startY; //位置
private int voiceX, voiceWidth; //记录图片位置和宽
private bool isLeftDown = false; //记录鼠标左键是否被按下
private bool haveVoice = true; //判断是否有声音
private int oldValue;//记录声音滑块的Value;
#endregion
#region//鼠标移动时图片变换事件
private void picClose_MouseMove(object sender, MouseEventArgs e)
{
picClose.Image = global::MusicPlay_美化_.Properties.Resources.close_muose_in;
}
private void picClose_MouseLeave(object sender, EventArgs e)
{
picClose.Image = global::MusicPlay_美化_.Properties.Resources.close_muose_out;
}
private void picMiniMode_MouseMove(object sender, MouseEventArgs e)
{
picMiniMode.Image = global::MusicPlay_美化_.Properties.Resources.minimode_muose_in;
}
private void picMiniMode_MouseLeave(object sender, EventArgs e)
{
picMiniMode.Image = global::MusicPlay_美化_.Properties.Resources.minimode_muose_out;
}
private void picMiniSize_MouseMove(object sender, MouseEventArgs e)
{
picMiniSize.Image = global::MusicPlay_美化_.Properties.Resources.minimize_mouse_in;
}
private void picMiniSize_MouseLeave(object sender, EventArgs e)
{
picMiniSize.Image = global::MusicPlay_美化_.Properties.Resources.minimize_mouse_out;
}
private void picVoice_MouseMove(object sender, MouseEventArgs e)
{
picVoice.Image = global::MusicPlay_美化_.Properties.Resources.voice_mouse_in;
}
private void picVoice_MouseLeave(object sender, EventArgs e)
{
if (haveVoice == true)
{
picVoice.Image = global::MusicPlay_美化_.Properties.Resources.voice_mouse_out;
}
else
{
picVoice.Image = global::MusicPlay_美化_.Properties.Resources.voice_mouse_in;
}
}
private void picPre_MouseMove(object sender, MouseEventArgs e)
{
picPre.Image = global::MusicPlay_美化_.Properties.Resources.prev_mouse_in;
}
private void picPre_MouseLeave(object sender, EventArgs e)
{
picPre.Image = global::MusicPlay_美化_.Properties.Resources.prev_mouse_out;
}
private void picPlayPause_MouseMove(object sender, MouseEventArgs e)
{
if (playState == false)
{
picPlayPause.Image = global::MusicPlay_美化_.Properties.Resources.play_muose_in;
}
else
{
picPlayPause.Image = global::MusicPlay_美化_.Properties.Resources.pause_mouse_in;
}
}
private void picPlayPause_MouseLeave(object sender, EventArgs e)
{
if (playState == false)
{
picPlayPause.Image = global::MusicPlay_美化_.Properties.Resources.play_muose_out;
}
else
{
picPlayPause.Image = global::MusicPlay_美化_.Properties.Resources.pause_mouse_out;
}
}
private void picStop_MouseMove(object sender, MouseEventArgs e)
{
picStop.Image = global::MusicPlay_美化_.Properties.Resources.stop_muose_in;
}
private void picStop_MouseLeave(object sender, EventArgs e)
{
picStop.Image = global::MusicPlay_美化_.Properties.Resources.stop_muose_out;
}
private void picNext_MouseMove(object sender, MouseEventArgs e)
{
picNext.Image = global::MusicPlay_美化_.Properties.Resources.next_muose_in;
}
private void picNext_MouseLeave(object sender, EventArgs e)
{
picNext.Image = global::MusicPlay_美化_.Properties.Resources.next_muose_out;
}
private void picOpen_MouseMove(object sender, MouseEventArgs e)
{
picOpen.Image = global::MusicPlay_美化_.Properties.Resources.open_muose_in;
}
private void picOpen_MouseLeave(object sender, EventArgs e)
{
picOpen.Image = global::MusicPlay_美化_.Properties.Resources.open_muose_out;
}
private void picAbout_MouseMove(object sender, MouseEventArgs e)
{
picAbout.Image = global::MusicPlay_美化_.Properties.Resources.About_mouse_in;
}
private void picAbout_MouseLeave(object sender, EventArgs e)
{
picAbout.Image = global::MusicPlay_美化_.Properties.Resources.About_mouse_out;
}
private void picPlayList_MouseMove(object sender, MouseEventArgs e)
{
picPlayList.Image = global::MusicPlay_美化_.Properties.Resources.playlist_mouse_in;
}
private void picPlayList_MouseLeave(object sender, EventArgs e)
{
picPlayList.Image = global::MusicPlay_美化_.Properties.Resources.playlist_mouse_out;
}
private void picEQ_MouseMove(object sender, MouseEventArgs e)
{
picEQ.Image = global::MusicPlay_美化_.Properties.Resources.equalizer_mouse_in;
}
private void picEQ_MouseLeave(object sender, EventArgs e)
{
picEQ.Image = global::MusicPlay_美化_.Properties.Resources.equalizer_mouse_out;
}
private void picLrc_MouseMove(object sender, MouseEventArgs e)
{
picLrc.Image = global::MusicPlay_美化_.Properties.Resources.lyric_mouse_in;
}
private void picLrc_MouseLeave(object sender, EventArgs e)
{
picLrc.Image = global::MusicPlay_美化_.Properties.Resources.lyric_mouse_out;
}
private void 添加ToolStripMenuItem_MouseMove(object sender, MouseEventArgs e)
{
添加ToolStripMenuItem.Image = global::MusicPlay_美化_.Properties.Resources.add_mouse_in;
}
private void 添加ToolStripMenuItem_MouseLeave(object sender, EventArgs e)
{
添加ToolStripMenuItem.Image = global::MusicPlay_美化_.Properties.Resources.add_mouse_out;
}
private void 删除toolStripMenuItem_MouseMove(object sender, MouseEventArgs e)
{
删除toolStripMenuItem.Image = global::MusicPlay_美化_.Properties.Resources.sub_mouse_in;
}
private void 删除toolStripMenuItem_MouseLeave(object sender, EventArgs e)
{
删除toolStripMenuItem.Image = global::MusicPlay_美化_.Properties.Resources.sub_mouse_out;
}
private void 列表ToolStripMenuItem_MouseMove(object sender, MouseEventArgs e)
{
列表ToolStripMenuItem.Image = global::MusicPlay_美化_.Properties.Resources.list_mouse_in;
}
private void 列表ToolStripMenuItem_MouseLeave(object sender, EventArgs e)
{
列表ToolStripMenuItem.Image = global::MusicPlay_美化_.Properties.Resources.list_mouse_out;
}
private void 查找ToolStripMenuItem_MouseMove(object sender, MouseEventArgs e)
{
查找ToolStripMenuItem.Image = global::MusicPlay_美化_.Properties.Resources.search_mouse_in;
}
private void 查找ToolStripMenuItem_MouseLeave(object sender, EventArgs e)
{
查找ToolStripMenuItem.Image = global::MusicPlay_美化_.Properties.Resources.search_mouse_out;
}
private void 模式ToolStripMenuItem_MouseMove(object sender, MouseEventArgs e)
{
模式ToolStripMenuItem.Image = global::MusicPlay_美化_.Properties.Resources.moshi_mouse_in;
}
private void 模式ToolStripMenuItem_MouseLeave(object sender, EventArgs e)
{
模式ToolStripMenuItem.Image = global::MusicPlay_美化_.Properties.Resources.moshi_mouse_out;
}
#endregion
#region //各控件事件
private void MainFrm_Load(object sender, EventArgs e) //窗体启动加载事件
{
playMode = 3; //默认的播放模式为循序播放
WindowsMediaPlayer.settings.volume = 50; //设置声音大小,int 0 ~ 100
trackBarVoice.Value = 6; //初始值
oldValue = trackBarVoice.Value; //记录原来的值
voiceX = picVoiceCover.Location.X; //记录图片位置
voiceWidth = picVoiceCover.Size.Width; //记录图片的宽
listBox1.ContextMenuStrip = contextMenuStripPlaylist; //右击播放列表时显示菜单
//读取播放列表
if (File.Exists(System.Windows.Forms.Application.StartupPath "\\PlayList.xml")) //如果播放列表存在,读入播放列表
{ //注意播放列表的路径
LoadXml(); //调用函数,
}
}
private void MainFrm_MouseDown(object sender, MouseEventArgs e) //鼠标按下
{
if (e.Button == MouseButtons.Left) //按下做键
{
isLeftDown = true; //为真
startX = e.X; //记录X,Y值
startY = e.Y;
}
}
private void MainFrm_MouseMove(object sender, MouseEventArgs e) //移动窗体 鼠标移动
{
if (isLeftDown == true) //只有鼠标左键按下时
{
this.Location = new Point(Control.MousePosition.X - startX, Control.MousePosition.Y - startY); //窗体移动
}
}
private void MainFrm_MouseUp(object sender, MouseEventArgs e) //松开鼠标
{
if (e.Button == MouseButtons.Left)
{
isLeftDown = false; //此时为假
}
}
private void MainFrm_Click(object sender, EventArgs e) //窗体单击
{
trackBarVoice.Focus(); //单击窗体聚焦
}
private void picClose_Click(object sender, EventArgs e) //退出
{
this.Close();
}
private void picMiniSize_Click(object sender, EventArgs e) //最小化事件
{
WindowState = FormWindowState.Minimized;
this.Visible = false;
}
private void picVoice_Click(object sender, EventArgs e) //设置静音
{
if (haveVoice == true)
{
haveVoice = false;
WindowsMediaPlayer.settings.mute = true; //静音
}
else
{
haveVoice = true;
WindowsMediaPlayer.settings.mute = false; //有声音
}
}
private void picPre_Click(object sender, EventArgs e) //前一首事件
{
selectedIndex = listBox1.SelectedIndex - 1; //给当前选择的选项索引-1;
if (selectedIndex > -1)
{
picJindu.Width = 0; //设置进度条宽度为0
timerJindu.Enabled = false; //暂时不可用
listBox1.SetSelected(selectedIndex, true); //改变listbox选择的项
listBox1SelectedIndexChanged(); // 调用函数
}
}
private void picPlayPause_Click(object sender, EventArgs e) //暂停/开始事件
{
if (playState == true)
{
WindowsMediaPlayer.Ctlcontrols.pause();
picPlayPause.Image = global::MusicPlay_美化_.Properties.Resources.play_muose_out; //改变图标
playState = false; //状态改变
}
else
{
WindowsMediaPlayer.Ctlcontrols.play();
picPlayPause.Image = global::MusicPlay_美化_.Properties.Resources.pause_mouse_out; //改变图标
playState = true; //状态改变
}
}
private void picStop_Click(object sender, EventArgs e) //停止
{
WindowsMediaPlayer.Ctlcontrols.stop(); //停止播放
picPlayPause.Image = global::MusicPlay_美化_.Properties.Resources.play_muose_out; //改变图标
playState = false; //状态改变
timer1.Enabled = false; //停止计时
lblPlayState.Text = "状态:停止"; //改变text
lbShengdao.Text = "声道";
lblCurrentTime.Text = "00:00";
}
private void picNext_Click(object sender, EventArgs e) //下一首
{
selectedIndex = listBox1.SelectedIndex 1; //给当前选择的选项索引 1;
if (selectedIndex < (listBox1.Items.Count))
{
picJindu.Width = 0; //设置进度条宽度为0
timerJindu.Enabled = false; //暂时不可用
listBox1.SetSelected(selectedIndex, true); //改变listbox选择的项
listBox1SelectedIndexChanged(); // 调用函数
}
}
private void picPlayList_Click(object sender, EventArgs e) //显示/关闭播放列表
{
if (listFrmShow == false)
{
this.Height = 295; //关闭列表框
listFrmShow = true;
}
else
{
this.Height = 144; //显示列表框
listFrmShow=false;
}
}
private void picAbout_Click(object sender, EventArgs e) //显示说明
{
About frm = new About();
frm.Show();
}
private void 文件ToolStripMenuItem_Click(object sender, EventArgs e) //打开文件
{
xmlEvent.WriteToXmlFromFile(); //直接调用方法
listBox1.Items.Clear(); //先把原来信息清除掉后再加载
LoadXml(); //写完之后直接加载XML到播放列表中
}
private void 文件夹ToolStripMenuItem_Click(object sender, EventArgs e) //打开文件夹
{
xmlEvent.WriteToXmlFromDir(); //直接调用方法
listBox1.Items.Clear(); //先把原来信息清除掉后再加载
LoadXml(); //写完之后直接加载XML到播放列表中
}
private void 选中文件ToolStripMenuItem_Click(object sender, EventArgs e) //删除选中文件
{
try
{
xmlEvent.removeInfo(listBox1.SelectedItem.ToString());
listBox1.Items.RemoveAt(listBox1.SelectedIndex); //删除选定的项
}
catch{ }
}
private void 全部删除ToolStripMenuItem_Click_1(object sender, EventArgs e) //全部删除
{
listBox1.Items.Clear(); //清除listbox中全部项
File.Delete(System.Windows.Forms.Application.StartupPath "\\PlayList.xml"); //删除播放列表
}
private void 新建列表ToolStripMenuItem_Click(object sender, EventArgs e) //新建列表(为写)
{
MessageBox.Show("不好意思,程序未开发", "呵呵", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
private void 单曲播放ToolStripMenuItem_Click(object sender, EventArgs e) //单曲播放
{
单曲播放ToolStripMenuItem1.Checked = true;
单曲循环ToolStripMenuItem1.Checked = false;
顺序播放ToolStripMenuItem1.Checked = false;
循环播放ToolStripMenuItem1.Checked = false;
playMode = 1; //1代表单曲播放
}
private void 单曲循环ToolStripMenuItem_Click(object sender, EventArgs e) //单曲循环
{
单曲播放ToolStripMenuItem1.Checked = false;
单曲循环ToolStripMenuItem1.Checked = true;
顺序播放ToolStripMenuItem1.Checked = false;
循环播放ToolStripMenuItem1.Checked = false;
playMode = 2; //2代表单曲循环
}
private void 循序播放ToolStripMenuItem_Click(object sender, EventArgs e) //循序播放
{
单曲播放ToolStripMenuItem1.Checked = false;
单曲循环ToolStripMenuItem1.Checked = false;
顺序播放ToolStripMenuItem1.Checked = true;
循环播放ToolStripMenuItem1.Checked = false;
playMode = 3; //3代表循环播放
}
private void 循环播放ToolStripMenuItem_Click(object sender, EventArgs e) //循环播放
{
单曲播放ToolStripMenuItem1.Checked = false;
单曲循环ToolStripMenuItem1.Checked = false;
顺序播放ToolStripMenuItem1.Checked = false;
循环播放ToolStripMenuItem1.Checked = true;
playMode = 4; //4代表循环播放
}
private void listBox1_DoubleClick(object sender, EventArgs e)
{
try
{
musicUrl = xmlEvent.getURL(listBox1.SelectedItem.ToString()); //从xml中查找位置
WindowsMediaPlayer.URL = musicUrl;
WindowsMediaPlayer.Ctlcontrols.play();
picPlayPause.Image = global::MusicPlay_美化_.Properties.Resources.pause_mouse_out; //改变图标
playState = true; //状态改变
timer1.Enabled = true; //时钟监视当前播放的状态
picJindu.Width = 0; //设置进度条宽度为0
}
catch { }
} //listbox双击
private void trackBarVoice_Scroll(object sender, EventArgs e) //控制声音
{
int newValue = trackBarVoice.Value; //记录当前声音滑块的位置
if (oldValue < newValue) //如果向右滑
{
WindowsMediaPlayer.settings.volume = 10; //增加音量
voiceX = 5;
voiceWidth -= 5;
picVoiceCover.Location = new System.Drawing.Point(voiceX, 63); //改变图片位置
picVoiceCover.Size = new System.Drawing.Size(voiceWidth, 11); //改变图片大
}
if (oldValue > newValue) //如果向左滑
{
WindowsMediaPlayer.settings.volume -= 10; //降低音量
voiceX -= 5;
voiceWidth = 5;
picVoiceCover.Location = new System.Drawing.Point(voiceX, 63);
picVoiceCover.Size = new System.Drawing.Size(voiceWidth, 11);
if (voiceX <= 151)
{
picVoiceCover.Location = new System.Drawing.Point(146, 63);
picVoiceCover.Size = new System.Drawing.Size(28, 11);
WindowsMediaPlayer.settings.volume = 0;
}
}
oldValue = trackBarVoice.Value; //重新给oldValue赋值
}
private void WindowsMediaPlayer_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e) //windows media状态改变
{
//利用PlayStateChange事件来实现由一曲到下一曲的替换,但是在响应PlayStateChange
//事件的时候直接改变Player的url无法让它直接播放下一曲,可添加一个timer来解决
if (WindowsMediaPlayer.playState == WMPLib.WMPPlayState.wmppsMediaEnded) //当歌曲结束时
{
timerMode.Enabled = true; // 激活timerMode
picJindu.Width = 0; //设置进度条宽度为0
timerJindu.Enabled = false; //暂时不可用
}
}
private void timer1_Tick(object sender, EventArgs e)
{
lblCurrentTime.Text = WindowsMediaPlayer.Ctlcontrols.currentPositionString;
//lblName.Text = "当前播放:" listBox1.SelectedItem.ToString();
//this.Text = "当前播放:" listBox1.SelectedItem.ToString(); //改变窗体的显示
if (WindowsMediaPlayer.currentMedia.duration > 0) //由于歌曲交换期间,WindowsMediaPlayer.currentMedia.duration会获取值为0
{
double musicLong = WindowsMediaPlayer.currentMedia.duration; //获取歌曲的时间长度
timerJindu.Interval = (int)((musicLong / 162) * 1000); //获取timerJinfu的间隔事件,类似于求速度
lbShengdao.Text = "立体声";
lblName.Text = "当前播放:" WindowsMediaPlayer.currentMedia.name;
this.Text = "当前播放:" WindowsMediaPlayer.currentMedia.name; //改变窗体的显示
if (playState == true)
{
lblPlayState.Text = "状态:播放";
timerJindu.Enabled = true;
}
else
{
lblPlayState.Text = "状态:暂停";
timerJindu.Enabled = false;
}
}
}
private void timerMode_Tick(object sender, EventArgs e)
{
selectedIndex = listBox1.SelectedIndex; //获取当前播放的item
switch (playMode)
{
case 1: danQuBoFang(); break;
case 2: danQuXunhuan(); break;
case 3: xunXuBoFang(); break;
case 4: xunxuXunHuan(); break;
default: MessageBox.Show("位置错误,请重新运行程序", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error); this.Close(); break;
}
timerMode.Enabled = false; //设置为不可用,知道下一首个播放完毕
}
private void timerJindu_Tick(object sender, EventArgs e)
{
if(picJindu.Width<=162)
picJindu.Width ; //宽度自加
}
private void 还原ToolStripMenuItem_Click(object sender, EventArgs e) //显示窗体
{
this.Show();
this.WindowState = FormWindowState.Normal;
notify.Visible = false; //隐藏托盘程序中的图标
}
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e) //退出
{
notify.Visible = false;
this.Close();
}
#endregion
#region //自定义方法
private void notifyClick(object sender, EventArgs e) //鼠标双击托盘事件
{
this.Show();
this.WindowState = FormWindowState.Normal;
notify.Visible = false; //隐藏托盘程序中的图标
}
private void listBox1SelectedIndexChanged() //listboxitem改变函数,自己写的函数
{
try
{
musicUrl = xmlEvent.getURL(listBox1.SelectedItem.ToString()); //从xml中查找位置
WindowsMediaPlayer.URL = musicUrl;
WindowsMediaPlayer.Ctlcontrols.play(); //播放歌曲
picPlayPause.Image = global::MusicPlay_美化_.Properties.Resources.pause_mouse_out; //改变图标
playState = true; //状态改变
timer1.Enabled = true;//开始计时
}
catch { }
}
private void LoadXml() //加载XML文件
{
XmlReader reader;
reader = new XmlTextReader(System.Windows.Forms.Application.StartupPath "\\PlayList.xml");
try
{
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
if (reader.Name == "MusicName")
{
this.listBox1.Items.Add(reader.ReadElementString().Trim());
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
if (reader != null)
reader.Close();
if (listBox1.Items.Count != 0) //只有当列表中存在时才显示
{
listBox1.SetSelected(0, true); //设置默认的选择项
lblName.Text = "当前播放:" listBox1.SelectedItem.ToString(); //显示选中歌曲名字
this.Text = "当前播放:" listBox1.SelectedItem.ToString();
}
}
}
//播放模式方法
private void danQuBoFang() //单曲播放
{
WindowsMediaPlayer.Ctlcontrols.stop(); //停止播放
picPlayPause.Image = global::MusicPlay_美化_.Properties.Resources.play_muose_out; //改变图标
playState = false; //状态改变
timer1.Enabled = false; //停止计时
lblPlayState.Text = "状态:停止"; //改变text
lbShengdao.Text = "声道";
lblCurrentTime.Text = "00:00";
}
private void danQuXunhuan() //单曲循环
{
musicUrl = xmlEvent.getURL(listBox1.SelectedItem.ToString()); //从xml中查找位置
WindowsMediaPlayer.URL = musicUrl;
WindowsMediaPlayer.Ctlcontrols.play(); //播放
}
private void xunXuBoFang() //循序播放
{
if (selectedIndex < (listBox1.Items.Count - 1))
{
selectedIndex = listBox1.SelectedIndex 1; //给当前选择的选项索引 1;
listBox1.SetSelected(selectedIndex, true); //改变listbox选择的项
listBox1SelectedIndexChanged(); // 调用函数
}
else
{
WindowsMediaPlayer.Ctlcontrols.stop(); //停止播放
picPlayPause.Image = global::MusicPlay_美化_.Properties.Resources.play_muose_out; //改变图标
playState = false; //状态改变
timer1.Enabled = false; //停止计时
lblPlayState.Text = "状态:停止"; //改变text
lbShengdao.Text = "声道";
lblCurrentTime.Text = "00:00";
timerJindu.Enabled = false;
}
}
private void xunxuXunHuan() //循环播放
{
if (selectedIndex == (listBox1.Items.Count - 1)) //如果当前播放的歌曲在列表末位
selectedIndex = 0; //索引移到列表头
else
selectedIndex = listBox1.SelectedIndex 1; //给当前选择的选项索引 1;
listBox1.SetSelected(selectedIndex, true); //改变listbox选择的项
listBox1SelectedIndexChanged(); // 调用函数
}
#endregion
}
}
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明


网友评论
我要评论