MediaPlayer 均衡器 EQ DX

wghxiaotu 2008-05-08 02:20:55
我正在做一个音乐播放器。
请教各位大使有没有用MediaPlayer编程实现均衡器的。
我在网上找到了相关用DX实现的方法,不过我的程序已经编了大部分了,都是用MediaPlayer做的。
希望有达人能指点一下怎么用Media实现均衡器,
或者有没有办法将Dx的均衡器和Media切和在一起。
在Media里有WMPEqualizerSettingsCtrl这个接口,可是相应类没有实例化函数。
有什么办法可以将这个和播放的axWindosMediaPlayer联系起来呢?
谢谢先,能解达的一定多多给分。
...全文
291 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyj210 2009-03-23
  • 打赏
  • 举报
回复
ei,peng dao ci lei wen ti,zhen shi yu men
wghxiaotu 2008-05-27
  • 打赏
  • 举报
回复
还未解决,没人会吗?
wghxiaotu 2008-05-09
  • 打赏
  • 举报
回复
谢谢,希望达人来帮帮忙啊。
glutton 2008-05-08
  • 打赏
  • 举报
回复
在帮你顶顶
glutton 2008-05-08
  • 打赏
  • 举报
回复
学习一下,呵呵
zzq2222 2008-05-08
  • 打赏
  • 举报
回复
置于怎么可以联系起来我也不太清楚!
zzq2222 2008-05-08
  • 打赏
  • 举报
回复
public partial class Form1 : Form
{
Device dev;
SecondaryBuffer sb;
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{

dev = new Device();
dev.SetCooperativeLevel(this, CooperativeLevel.Normal);
sb = new SecondaryBuffer("E:\\OOAD\\Demo\\Eq均衡器\\Eq均衡器\\lianchan.wav", dev);
EffectDescription[] eDes = new EffectDescription[10];
for (int i = 0; i <= 9; i++)
{
eDes[i].GuidEffectClass = DSoundHelper.StandardParamEqGuid;
}
sb.SetEffects(eDes);
int[] freDur = new int[] { 100, 200, 400, 600, 1000, 3000, 6000, 12000, 14000, 16000 };
for (int i = 0; i <= 9; i++)
{
ParamEqEffect eqEffect = (ParamEqEffect)sb.GetEffects(i);
EffectsParamEq effectsParamEq = eqEffect.AllParameters;
effectsParamEq.Center = freDur[i];
effectsParamEq.Bandwidth = 36;
eqEffect.AllParameters = effectsParamEq;
}
sb.Play(0, BufferPlayFlags.Looping);
}
public void ChangeGain(int index, int value)
{
ParamEqEffect eqEffect = (ParamEqEffect)sb.GetEffects(index);
EffectsParamEq effectsParamEq = eqEffect.AllParameters;
effectsParamEq.Gain = value;
eqEffect.AllParameters = effectsParamEq;
}

private void trackBar1_Scroll(object sender, EventArgs e)
{
ChangeGain(0, trackBar1.Value);
}

private void trackBar2_Scroll(object sender, EventArgs e)
{
ChangeGain(1, trackBar2.Value);
}

private void trackBar3_Scroll(object sender, EventArgs e)
{
ChangeGain(2, trackBar3.Value);
}

private void trackBar4_Scroll(object sender, EventArgs e)
{
ChangeGain(3, trackBar4.Value);
}

private void trackBar5_Scroll(object sender, EventArgs e)
{
ChangeGain(4, trackBar5.Value);
}

private void trackBar6_Scroll(object sender, EventArgs e)
{
ChangeGain(5, trackBar6.Value);
}

private void trackBar7_Scroll(object sender, EventArgs e)
{
ChangeGain(6, trackBar7.Value);
}

private void trackBar8_Scroll(object sender, EventArgs e)
{
ChangeGain(7, trackBar8.Value);
}

private void trackBar9_Scroll(object sender, EventArgs e)
{
ChangeGain(8, trackBar9.Value);
}

private void trackBar10_Scroll(object sender, EventArgs e)
{
ChangeGain(9, trackBar10.Value);
}
}

给你一个用DX实现的方法.

111,125

社区成员

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

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

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