首页 > 解决方案 > DirectSoundOut 不起作用,但 WaveOut 起作用

问题描述

将麦克风发送到 DirectSoundOut 不适用于此代码:

        // directsound - doesn't work
        var mic = new WaveInEvent() { DeviceNumber = 0 };

        WaveInProvider waveInProvider = new WaveInProvider(mic);

        var dso = new DirectSoundOut(DirectSoundOut.DSDEVID_DefaultPlayback, 300);

        dso.Init(waveInProvider);
        mic.StartRecording();

        dso.Play();

但几乎同样的事情也适用于 WaveOut:

        var mic = new WaveInEvent() { DeviceNumber = 0 }; 
        WaveInProvider waveInProvider = new WaveInProvider(mic);
        mic.StartRecording();
        var waveOut = new WaveOutEvent();
        waveOut.DeviceNumber = -1;
        waveOut.DesiredLatency = 300;
        waveOut.Init(waveInProvider);
        waveOut.Play();

NAudio:版本 1.8.4 操作系统:Win 10 64bit

有任何想法吗?

标签: naudio

解决方案


是的,我遇到了同样的问题。用这个:

var mic = new WaveInEvent() { DeviceNumber = 0 };

    WaveInProvider waveInProvider = new WaveInProvider(mic);

    var dso = new DirectSoundOut(DirectSoundOut.DSDEVID_DefaultPlayback, 300);

    dso.Init(waveInProvider);
    mic.StartRecording();

    dso.Play();
    while(true) {}

推荐阅读