如何从默认音频设备录制和播放音频
问题描述:
我似乎无法从默认音频设备录制音频,并将其播放到另一个音频设备上。 我不想录制麦克风,但音频设备..如何从默认音频设备录制和播放音频
当我演电影,我可以听到声音,通过我的耳机,我想那声音复制到任何音频设备,我选择..
如果您有任何建议,这不必须与NAudio ..
据我所知,NAudio不能这样做..
这是我用在这个时候任务的代码,但是只需要输入从我的麦克风:代码片断与n音讯..
void playSoundCopy(int dv0)
{
disposeWave0();// stop previous sounds before starting
var waveOut0 = new WaveOut();
waveOut0.DeviceNumber = dv0;
wave0 = waveOut0;
Defaultwave0 = new WaveIn();
Defaultwave0.DeviceNumber = (int)GetDefaultDevice(Defaultdevice.FriendlyName);
var waveinReader0 = new WaveInProvider(Defaultwave0);
wave0.Init(waveinReader0);
play0 = false;
Thread.Sleep(1000);
play0 = true;
t0 = new Thread(() => { timeline0(); });
t0.IsBackground = true;
t0.Start();
Defaultwave0.StartRecording();
wave0.Play();
}
真正的问题其实是,我不能从记录waveout的设备,只有WaveIn ..
工作结果:
void playSoundCopy(int dv0)
{
disposeWave0();// stop previous sounds before starting
var waveOut0 = new WaveOut();
waveOut0.DeviceNumber = dv0;
wave0 = waveOut0;
var format0 = Defaultdevice.AudioClient.MixFormat;
buffer0 = new BufferedWaveProvider(format0);
wave0.Init(buffer0);
capture = new WasapiLoopbackCapture(Defaultdevice);
capture.ShareMode = AudioClientShareMode.Shared;
capture.DataAvailable += CaptureOnDataAvailable;
play0 = false;
Thread.Sleep(1000);
play0 = true;
t0 = new Thread(() => { timeline0(); });
t0.IsBackground = true;
t0.Start();
capture.StartRecording();
wave0.Play();
}
void CaptureOnDataAvailable(object sender, WaveInEventArgs waveInEventArgs)
{
try
{
var itm = new byte[waveInEventArgs.BytesRecorded];
Array.Copy(waveInEventArgs.Buffer, itm, waveInEventArgs.BytesRecorded);
buffer0.AddSamples(itm, 0, itm.Length);
}
catch { }
}
有了这些信息,我认为没有人能够帮到你。请详细解释并在需要时添加一些代码/更多上下文。 – 2016-10-10 18:31:27
我要求的是建议,而不是实际的代码,除非它是一个代码片段。 – ArchAngel
也许你首先需要启用这个所需的录音设备。从大胆看这个页面例如:http://manual.audacityteam.org/man/tutorial_recording_computer_playback_on_windows.html –