Я не могу записать звук с аудиоустройства по умолчанию и воспроизвести его на другом аудиоустройстве. Я не хочу записывать микрофон, но звук устройство ..Как записывать и воспроизводить звук с аудиоустройства по умолчанию
Когда я играю в кино, я могу слышать звук через мои наушники, я хочу, чтобы скопировать этот звук любого аудио устройства я выбираю ..
Если у вас есть какие-либо предложения, оно не должны быть с NAudio ..
Насколько я могу судить, NAudio не может этого сделать.
Это код, я использую для выполнения этой задачи в настоящее время, но он принимает только входной сигнал от моего микрофона: Фрагмент кода с NAudio ..
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 { }
}
С этой небольшой информацией, я думаю, никто не сможет вам помочь. Пожалуйста, объясните подробнее и добавьте в случае необходимости какой-то код/больше контекста. –
Я прошу предложений, а не фактического кода, если это не фрагмент кода. – ArchAngel
Возможно, вам сначала нужно включить записывающее устройство, необходимое для этого. См. Эту страницу от смелости, например: http://manual.audacityteam.org/man/tutorial_recording_computer_playback_on_windows.html –