Je n'arrive pas à enregistrer l'audio du périphérique audio par défaut et à le lire sur un autre périphérique audio. Je ne souhaite pas enregistrer le microphone, mais l'audio appareil ..Comment enregistrer et lire du son à partir d'un périphérique audio par défaut
Quand je joue un film, je peux entendre le son, dans mes écouteurs, je veux copier ce son à tout appareil audio .. Je choisis
Si vous avez des suggestions, il n'a pas doit être avec NAudio ..
Pour autant que je sache, NAudio ne peut pas faire cela ..
C'est le code que j'utilise pour la tâche à ce moment, mais il ne prend entrée de mon microphone: Extrait de code avec 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();
}
Le vrai problème est en fait que je ne peux pas enregistrer à partir d'un dispositif WaveOut, seulement WaveIn ..
Résultat de travail:
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 { }
}
Avec cette petite information, je pense que personne ne peut vous aider. S'il vous plaît expliquer plus en détail et ajouter si nécessaire du code/plus de contexte. –
Je demande des suggestions, pas de code réel à moins, c'est un extrait de code .. – ArchAngel
Peut-être que vous devez d'abord activer l'appareil d'enregistrement nécessaire pour cela. Voir cette page d'audacity par exemple: http://manual.audacityteam.org/man/tutorial_recording_computer_playback_on_windows.html –