首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WaveOut对WaveOutEvent

WaveOut对WaveOutEvent
EN

Stack Overflow用户
提问于 2012-11-03 10:27:46
回答 1查看 4K关注 0票数 2

我用NAudio

代码语言:javascript
复制
WaveOutEvent Klangwiedergabegeraet;

private void Play(string Dateiname)
{
    Klangwiedergabegeraet = new WaveOutEvent();
    Klangwiedergabegeraet.DeviceNumber = comboBox1.SelectedIndex;
    ISampleProvider StueckchenHalter = null;
    StueckchenHalter = CreateInputStreamS(Dateiname);
    Klangwiedergabegeraet.Init(new SampleToWaveProvider(StueckchenHalter));  
    Klangwiedergabegeraet.Play();
}

private void Cancel()
{
    if (Klangwiedergabegeraet != null)
    {
        Klangwiedergabegeraet.Stop();
        Klangwiedergabegeraet.Dispose();
    }
}

当运行Cancel()时,它不会停止。当我用

代码语言:javascript
复制
WaveOut Klangwiedergabegeraet;

private void Play(string Dateiname)
{
    Klangwiedergabegeraet = new WaveOut();
    ...
}

private void Cancel()
{
    if (Klangwiedergabegeraet != null)
    {
        Klangwiedergabegeraet.Stop();
        Klangwiedergabegeraet.Dispose();
    }
}

啊,真灵。这是为什么,要改变什么?

P.S我使用的是WaveOutEvent而不是WaveOut,因为WaveOut没有属性DeviceNumber

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-03 15:40:41

如果您是在非GUI线程上运行,那么推荐使用WaveOutEvent,而不是WaveOut,因为它将选择在某些声卡上可能不可靠的函数回调。而且,WaveOut有一个DeviceNumber属性。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13208271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档