Воспроизведение звука с микрофона в реальном времени с помощью SoundEffect silverlight 5 - PullRequest
0 голосов
/ 04 декабря 2011

Я пытаюсь воспроизвести звук с микрофона в реальном времени, используя звуковой эффект и аудиосигнал в Silverlight 5, но звук прерывается, вот код, который я использовал

protected override void OnSamples(long sampleTime, long sampleDuration, byte[] sampleData)
{
  try
  {
    SoundEffect effect = new SoundEffect(sampleData, 8000, AudioChannels.Mono);
    effect.Play();
   }
   catch
   { }
 }

Любая помощь или альтернативы?

1 Ответ

0 голосов
/ 04 декабря 2011

Я почти уверен, что это не тот сценарий, для которого предназначен класс SoundEffect.Для воспроизведения последовательного аудиопотока вам нужна как минимум некоторая разновидность буферизации и согласованности между различными кадрами.То, что я делал в прошлом, чтобы заставить подобные вещи работать, - это кратковременно буферизовать звук, поступающий из AudioSink, а затем сделать его доступным для MediaStreamSource, который, в свою очередь, воспроизводит его.Существуют хорошие базовые реализации MediaStreamSource, множество мест, которые вы можете занять (странная часть - правильно получить все заголовки WAV), но вам все равно придется писать код буферизации самостоятельно.Простейшим способом было бы использовать очередь для хранения каждого переданного байтового массива, а затем просто заставить MediaStreamSource извлекать байтовые массивы в своем методе GetSampleAsync ().

Начните здесь: http://dotnet.dzone.com/news/creating-sound-using

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...