Obsługa mikrofonu w C# (NAudio).

0

Od jakiegoś czasu próbuję nauczyć się obsługi mikrofonu w c# za pomocą NAudio. Chodzi o nagrywanie dzwięku z mikrofonu, i odtworzenie, ze strumienia bez zapisywania do pliku. Oto moje najnowsze osiągnięcie:

 
public class SoundMessage
    {
        private BufferedWaveProvider waveProvider = null;
        private WaveIn m_WaveIn;
        WaveOut waveOut = new WaveOut();

        public void StartRecording()
        {
            m_WaveIn = new WaveIn();
            m_WaveIn.DeviceNumber = 0;
            m_WaveIn.BufferMilliseconds = 50;
            m_WaveIn.DataAvailable += new EventHandler<WaveInEventArgs>(WaveIn_DataAvailable);
            m_WaveIn.WaveFormat = new NAudio.Wave.WaveFormat(16000, 1);
            waveProvider = new BufferedWaveProvider(m_WaveIn.WaveFormat);
            m_WaveIn.StartRecording();
        }

        public void StopRecording()
        {
            m_WaveIn.StopRecording();
           // m_WaveIn.Dispose();
           // m_WaveIn = null;
        }

        public void Play()
        {
            waveOut.Init(waveProvider);
            waveOut.Play();
        }

        public void WaveIn_DataAvailable(object sender, WaveInEventArgs e)
        {
            byte[] buffer = e.Buffer;
            waveProvider.AddSamples(buffer, 0, buffer.Length);
        }
         
        public SoundMessage()
        {

        }
    }

Gdy wywołam metodę nagrywania po jakichś 5 sekundach program wywala "Buffer full". Z jakiegoś powodu bufor nie dodaje kolejnych fragmentów. Poradźcie coś. Ewentualnie jakąś naprawdę dobrą bibliotekę darmową do zastosowań komercyjnych.

0

Wiem że jest na to gotowa prosta biblioteka w coding4Fun. Tutaj był kurs na którym jest to całkiem wytłumaczone : http://channel9.msdn.com/Series/Windows-Phone-8-Development-for-Absolute-Beginners/Part-20-Recording-an-Audio-Wav-File . Co prawda opisane na przykładzie Windows Phone, ale jeśli chodzi o sam proces nic nie powinno się zmienić. Tam chyba istniała też taka możliwość żeby odtworzyć ten plik bez zapisywania ( a może on zapisał to pliku tymczasowego, nie jestem pewnien, ale moim zdaniem nie powinieneś się tym przejmować)

Poza tym jak ktoś już wspomniał zły dział.

0

Nie wiem gdzie miałem oczy ładując to tutaj. Proszę admina o przeniesienie tematu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1