2014-01-09 1 views
1

Recording with AudioQueue and Monotouch static sound демонстрирует, как получить звук через микрофон iPhone в аудиоканал с использованием Xamarin.iOS. Мой вопрос: как я могу постоянно записывать микрофон? Я в основном хочу держать микрофон включенным до тех пор, пока приложение открыто, и непрерывно захватывает аудиопоток (обратите внимание, что я не хочу сохранять поток в файл). Внутри длинного цикла while?Потоковая передача звука с микрофона в iPhone с использованием Xamarin

ответ

2

Это должно работать: https://github.com/sami1971/SimplyMobile/blob/master/iOS/SimplyMobile.Media/Audio/AudioStream.cs

Initialize и использовать Start() при запуске приложения, а затем вызвать Stop(), когда закрывается приложение (или идет фоном). Захваченные буферы доставляются через обработчик событий OnBroadcast.

РЕДАКТИРОВАТЬ: Вот быстрый класс WaveRecorder. У меня не было времени проверить его, поэтому, если вы найдете в нем ошибки, пожалуйста, отмените изменения или дайте мне знать, что нужно изменить. https://github.com/sami1971/SimplyMobile/blob/master/Core/SimplyMobile.Media/Audio/WaveRecorder.cs

+0

Спасибо, что работает отлично! Но теперь я изо всех сил пытаюсь сыграть созданный поток - пытаясь использовать пример из Xamarin [Streaming Audio] (http://docs.xamarin.com/samples/StreamingAudio/). Могу успешно передавать MP3, но не аудио с микрофона. – mrtnkrstn

+0

Если вы сохраняете вывод в файл, вам нужно сначала добавить в него заголовки WAV, иначе это чистый PCM. Написание выходного сигнала не очень сложно, я могу добавить его в свою библиотеку, если найду время сегодня. – SKall

+0

Нет, не записывайте сначала, так что это чистый PCM. Спасибо за вашу помощь! – mrtnkrstn