gpt4 book ai didi

.net - 转换此代码以获取麦克风输入?包含类源代码

转载 作者:行者123 更新时间:2023-12-02 22:35:35 25 4
gpt4 key购买 nike

我正在使用WindowsMedia库(位于此处):http://www.ernzo.com/soundstudio.aspx

该示例代码具有播放音频文件的能力,但是我试图使流来自麦克风。

我相信,除以下部分外,我已经掌握了所有将PeakMeter与麦克风配合使用的代码。这是用于初始化音乐文件播放的代码,但我需要它来初始化收听麦克风。

虽然不知道如何做到这一点。有人做过此事并且知道需要进行哪些更改吗?

IMediaStream pAudioStream = null;
_MediaStream = new MultimediaStream();
int mmr = _MediaStream.Initialize(STREAM_TYPE.STREAMTYPE_READ,
(int)AMMSF_INIT.AMMSF_NOGRAPHTHREAD, null);
mmr = _MediaStream.AddMediaStream(null, MSPurposeId.PrimaryAudio,
0, out pAudioStream);
MSStatus.ThrowExceptionForHR(mmr);

// open media file
mmr = _MediaStream.OpenFile(filePath, (int)AMMSF_OPEN.AMMSF_RUN);
MSStatus.ThrowExceptionForHR(mmr);

_AudioStream = new MMAudioStream();
mmr = _AudioStream.SetMediaStream(pAudioStream);
MSStatus.ThrowExceptionForHR(mmr);

_wfmt = new WaveFormat(_AudioStream.Format);
mmr = WaveDevice.Open(WaveConstants.WAVE_MAPPER, _wfmt);
WaveOutStatus.ThrowExceptionForHR(mmr);

WaveDevice是IWaveDevice,类型为WaveOutDevice。显然,这将更改为WaveInDevice类型,并将WaveOutStatus更改为WaveInStatus。

这是我完整创建的类的代码。 Listen()方法是我正在修改的方法。

http://pastebin.com/TQTwRHTF

此类是使用SoundStudio项目中提供的代码以及Ernzo提供的WindowsMedia和PeakMeter创建的。

如果有人能弄清楚使Listen()正常工作的更改,那将为他们带来很多好处。 (它目前包含我尝试找出的代码,但Play()正常运行)。

最佳答案

有一个演示演示如何使用waveIn。
__waveInput_SoundStudioFrm.cs,只需将其重命名为SoundStudioFrm.cs

关于.net - 转换此代码以获取麦克风输入?包含类源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5356940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com