如何在 c#中利用 directsound 来播放声音

 我来答
惊慌夜
2017-03-29 · TA获得超过189个赞
知道小有建树答主
回答量:250
采纳率:0%
帮助的人:99.9万
展开全部
用DirectSound在窗口中播放声音,可当窗口失去焦点后却不播放了,要想让它继续播放搞了一个下午也没有搞定,幸好有网络来帮助.呵呵终于搞定
ZhDZ007
2017-05-24
知道答主
回答量:9
采纳率:0%
帮助的人:8.8万
展开全部
//src:音频文件名(包括路径),owner主窗口句柄
public void play(string src,IntPtr owner)
{
//获取默认音频播放设备
DevicesCollection playerDevices = new DevicesCollection();
// 建立声音设备
dev = new Device(playerDevices[i].DriverGuid);
dev.SetCooperativeLevel(owner, CooperativeLevel.Normal);
if(dev==null)
{
return;
}

// 为声音建立二级缓冲区
try
{
BufferDescription buffDes = new BufferDescription();
buffDes.GlobalFocus = true;//设置缓冲区全局获取焦点
buffer = new Microsoft.DirectX.DirectSound.SecondaryBuffer(src, buffDes, dev);
buffer.Pan = Convert.ToInt32(Pan.Center);
// 播放声音
buffer.Play(0, Microsoft.DirectX.DirectSound.BufferPlayFlags.Default);
}
catch (Exception ex)
{
MessageBox.Show("建立二级缓冲区异常:" + ex.Message);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式