2010-03-15 4 views
6

Эй вы Objective-C bods.Аудио/Голосовая визуализация

Кто-нибудь знает, как я собираюсь изменить (преобразовать) изображение на основе ввода микрофона на iPhone?

Т.е. когда пользователь говорит на микрофоне, изображение будет пульсировать или искажаться.

[редактировать] У любого есть идеи, у меня есть (в основном) приложение для записи голоса. Я просто хотел, чтобы что-то изменилось по мере ввода голосового ввода. Я видел это в примерном проекте, но это не было с UIImage. [/ edit]

спасибо!

ответ

8

Apple собрал некоторые отличные рамки для этого! Основа AVFoundation и инфраструктура CoreAudio будут наиболее полезными для вас.

Для получения информации об уровне звука AVAudioRecorder полезен. Хотя он предназначен для записи, он также предоставляет данные уровня для микрофона. Это было бы полезно для деформирующий базового образа того, как громко пользователь кричит на свой телефон;)

Вот документация яблоко для AVAudioRecorder: AVAudioRecorder Class Reference

Немного более подробно:

// You will need an AVAudioRecorder object 
AVAudioRecorder *myRecorderObject; 

// To be able to get levels data from the microphone you need 
// to enable metering for your recorder object 

[myRecorderObject prepareToRecord]; 
myRecorderObject.meteringEnabled=YES; 

// Now you can poll the microphone to get some levels data 

float peakPower = [myRecorderObject peakPowerForChannel:0]; 
float averagePower = [myRecorderObject averagePowerForChannel:0]; 

Если вы хотите увидеть отличный пример того, как объект AVAudioRecorder можно использовать для получения данных уровней, ознакомьтесь с этим tutorial.

Что касается деформирования изображения, это будет до библиотеки изображений. Есть много на выбор и некоторые отличные из яблока. Я не знаком ни с чем, хотя так, чтобы кто-то мог ответить.

Удачи!

+1

Если вы новичок в использовании микрофона на iPhone, ознакомьтесь с этим руководством: http://www.mobileorchard.com/tutorial-detecting-when-a-user-blows-into-the-mic/ – Jay

+0

Отлично, спасибо! –

0

Вы можете попробовать использовать расширяемый каркас gl-data-visualization-view, чтобы визуализировать ваши уровни звука.