BLOG

Acompanhe a Mobits pelo RSS

FILTROS

A maioria dos aplicativos utilitários não toca nenhum som quando clicamos nos seus botões ou selecionamos elementos em suas tabelas. Contudo, para alguns aplicativos, especialmente jogos, o feedback sonoro é muito importante. No nosso aplicativo The Lost Puzzles, por exemplo, o som é usado para simular pedras se movendo e a música para fazer o usuário imergir no cenário do antigo Egito.

Existem diversas formas de se tocar som em aplicativos iPhone, uma das mais simples é usando o AudioToolbox, framework de alto nível. Vamos explicar o passo a passo de como tocar um som de sistema, que é um som curto tocado rapidamente, como o pulo de um personagem ou o apertar de um botão.

1. Converter para caf

Uma das limitações de usar essa abordagem é que ela não suporta todos os formatos de som (como wav), por isso temos que usar o formato caf. A forma mais simples de converter um som é usando o seguinte comando no terminal:

afconvert -f caff -d LEI16@44100 -c 1 in.wav out.caf

2. Carregar os sons

Depois de converter os arquivos de som, você tem que carrega-los para a memória - essa é aquela parte que os jogos colocam uma barrinha e pedem pra você esperar um pouco antes de começar o jogo. Para carregar, importe os arquivos para o projeto e use o seguinte código:

SystemSoundID somId;
NSString *somPath = [[NSBundle mainBundle] pathForResource:@"nomeSom" ofType:@"caf"];
CFURLRef somURL = (CFURLRef) [NSURL fileURLWithPath:somPath];
AudioServicesCreateSystemSoundID(somURL, &somId);

Isso trará o seu som para a memória e o guardará nesse somId. Não se esqueçam de liberar o som quando você não precisar mais dele (quando o jogo sair da fase e menu, por exemplo), usando o comando AudioServicesDisposeSystemSoundID e passando o somId como parâmetro.

3. Tocar o som

Essa é a parte mais simples, basta usar a linha:

AudioServicesPlaySystemSound(somId);

Em um futuro post comentaremos como utilizar o framework AVFoundation para tocar músicas de fundo em formatos mais amigáveis, como o mp3.

COMPARTILHE

DEIXE UM COMENTÁRIO

If you can read this, you don't use a typical webbrowser that plays nice with CSS.
Please do not fill in anything here!