我似乎無法從默認音頻設備錄製音頻,並將其播放到另一個音頻設備上。 我不想錄制麥克風,但音頻設備..如何從默認音頻設備錄製和播放音頻
當我演電影,我可以聽到聲音,通過我的耳機,我想那聲音複製到任何音頻設備,我選擇..
如果您有任何建議,這不必須與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 –