怎样做一个音乐播放器呢?

MrRicky 2010-09-13 04:44:18
用C#怎样做一个像QQ音乐一样的播放器呢,不需要那么多功能,只要能实现简单的搜歌,播放本地音乐功能即可,请高手指教..
...全文
935 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
z46988646 2012-03-14
  • 打赏
  • 举报
回复
最简单,最没技术含量的就是拖个控件。。。
chentian2456 2012-03-14
  • 打赏
  • 举报
回复
这个例子太多了!
去工具箱拖个控件就OK
nonocast 2012-03-13
  • 打赏
  • 举报
回复

string sample = @"D:\4Music\Adele - 21(Deluxe Edition)\01 - Rolling in the Deep.mp3";
var graphBuilder = new FilterGraph();
var mediaControl = graphBuilder as IMediaControl;
mediaControl.RenderFile(sample);
mediaControl.Run();

Try the code in Console or any project.
http://nonocast.cn/?p=2737
crackdung 2012-03-13
  • 打赏
  • 举报
回复
http://www.multimediasoft.com/amp3dj/
逍遥蜂 2012-03-13
  • 打赏
  • 举报
回复
谢谢。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
johnbcde 2011-01-18
  • 打赏
  • 举报
回复
谢谢了
ziheng5512 2011-01-18
  • 打赏
  • 举报
回复
namespace ShockwaveFlashPlayer
{
public partial class SWFPlayer : Form
{
public SWFPlayer()
{
InitializeComponent();

axShockwaveFlash1.Size = new Size(this.Width, this.Height - 130);
axShockwaveFlash1.Movie = "";

lblReadyState.Location = new Point(0, this.Height - 125);
lblScale.Location = new Point(this.Width - lblScale.Width - 10, this.Height - 125);
trackBar1.Location = new Point(0, this.Height - 100);
}

private void SWFPlayer_Load(object sender, EventArgs e)
{
if (axShockwaveFlash1.ReadyState == 4)
{
lblReadyState.Text = "完成";
lblScale.Text = "0/" + axShockwaveFlash1.TotalFrames.ToString();
btnPlay.Enabled = true;
trackBar1.Enabled = true;
}
}

#region ShockwaveFlash 控件加载文件信息
private void axShockwaveFlash1_OnReadyStateChange(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_OnReadyStateChangeEvent e)
{
switch (axShockwaveFlash1.ReadyState)
{
case 0:
lblReadyState.Text = "正在载入......";
break;
case 1:
lblReadyState.Text = "未初始化";
break;
case 2:
lblReadyState.Text = "已载入";
break;
case 3:
lblReadyState.Text = "正在交互......";
break;
case 4:
lblReadyState.Text = "完成";
lblScale.Text = axShockwaveFlash1.FrameNum + "/" + axShockwaveFlash1.TotalFrames.ToString();
trackBar1.Maximum = axShockwaveFlash1.TotalFrames;
btnPlay.Enabled = true;
btnBack.Enabled = true;
btnForward.Enabled = true;
trackBar1.Enabled = true;
break;
}
}

private void axShockwaveFlash1_OnProgress(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_OnProgressEvent e)
{
lblReadyState.Text = "已下载 " + axShockwaveFlash1.PercentLoaded() + "%......";
}
#endregion

#region 功能键(播放、后退、前进)
//播放
private void btnPlay_Click(object sender, EventArgs e)
{
if (axShockwaveFlash1.Playing)
{
axShockwaveFlash1.Stop();
btnPlay.Text = "►";
lblReadyState.Text = "暂停";
timer1.Stop();
}
else
{
axShockwaveFlash1.Play();
btnPlay.Text = "■";
lblReadyState.Text = "播放";
timer1.Start();
}
}
//后退
private void btnBack_Click(object sender, EventArgs e)
{
//axShockwaveFlash1.Back(); //此方法只能后退一帧
axShockwaveFlash1.GotoFrame(axShockwaveFlash1.FrameNum - 20);
btnPlay_Click(null, null); //播放
}
//前进
private void btnForward_Click(object sender, EventArgs e)
{
//axShockwaveFlash1.Forward(); //前进一帧
axShockwaveFlash1.GotoFrame(axShockwaveFlash1.FrameNum + 20);
btnPlay_Click(null, null); //播放
}
#endregion

#region 暂无内容
private void axShockwaveFlash1_FlashCall(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FlashCallEvent e)
{
//XmlDocument doc = new XmlDocument();
//doc.LoadXml(e.request);

//XmlNodeList list = doc.GetElementsByTagName("arguments");
//int width = Convert.ToInt32(list[0].FirstChild.InnerText);
//int height = Convert.ToInt32(list[0].ChildNodes[1].InnerText);
//if (width > axShockwaveFlash1.Width)
//{
// this.Width += width - axShockwaveFlash1.Width;
//}
//if (height > axShockwaveFlash1.Height)
//{
// this.Height += height - axShockwaveFlash1.Height;
//}
}

private void axShockwaveFlash1_FSCommand(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEvent e)
{

}
#endregion

//打开本地文件
private void tsmiOpenFile_Click(object sender, EventArgs e)
{
DialogResult dr = openFile.ShowDialog();
if (dr == DialogResult.OK)
{
axShockwaveFlash1.Movie = openFile.FileName;
//axShockwaveFlash1.CallFunction("<invoke name=\"loadAndPlayVideo\" returntype=\"xml\"><arguments><string>" + openFile.FileName + "</string></arguments></invoke>");
}
}

#region 文件拖放
private void FlashControl_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.All;
}
}

private void FlashControl_DragDrop(object sender, DragEventArgs e)
{
string swf = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();

if (Path.GetExtension(swf).ToLower() == ".swf")
{
axShockwaveFlash1.Movie = swf;
}
else
{
MessageBox.Show("文件必须是 swf 格式!");
}
}
#endregion

//计数器
private void timer1_Tick(object sender, EventArgs e)
{
lblScale.Text = axShockwaveFlash1.FrameNum + "/" + axShockwaveFlash1.TotalFrames.ToString();
trackBar1.Value = axShockwaveFlash1.FrameNum;
}

//拖动 滑动条 滑块
private void trackBar1_Scroll(object sender, EventArgs e)
{
axShockwaveFlash1.GotoFrame(trackBar1.Value);
lblScale.Text = axShockwaveFlash1.FrameNum + "/" + axShockwaveFlash1.TotalFrames.ToString();
btnPlay_Click(null, null); //播放
}

}
}
johnbcde 2011-01-17
  • 打赏
  • 举报
回复
自己做的MP3怎么给他编一个播放软件呀??
johnbcde 2011-01-17
  • 打赏
  • 举报
回复
自己做的MP3怎么给他变一个播放软件呀??
qinyun118 2011-01-17
  • 打赏
  • 举报
回复
http://hi.baidu.com/qinyun118/blog/item/cbae6a02d480259ad53f7c48.html
porschev 2010-09-13
  • 打赏
  • 举报
回复
mcisendstring API
tjava_net 2010-09-13
  • 打赏
  • 举报
回复
你要学点软件设计,如果想做功能简单一点的可以用Flash做个播放器也可
,不过要用到Flash中的编程,不过简单多了,
优酷、酷六网上有相关视频可以看着学学
zcandyly20211 2010-09-13
  • 打赏
  • 举报
回复
http://download.csdn.net/source/480218
tjava_net 2010-09-13
  • 打赏
  • 举报
回复
JS,下插件。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧