Qual é a maneira mais simples para reproduzir um clipe de som em um iPhone app?
-
23-08-2019 - |
Pergunta
Eu quero ser capaz de jogar um clipe de som em um aplicativo para iPhone OS. Eu vi informações sobre ambos NSSound , bem como AVFoundation como meios para obter clipes de som jogado em um dispositivo iPhone OS, mas eu ainda não estou claro sobre o assunto e poderia usar alguma ajuda. Não há necessidade de explicar isso para mim passo-a-passo no código real, mas se alguém poderia me dar uma dica sobre a direção geral (ou seja, quais as classes que eu deveria estar centrada na) em que eu deveria começar a se mover eu vou encher os espaços em branco eu. Então, qual é a maneira mais simples para reproduzir um clipe de som em um aplicativo do iPhone?
Solução
A Apple tem um artigo sobre este assunto, consulte: este link
AVAudioPlayer é a maneira mais simples de reproduzir sons de qualquer comprimento, looping ou não, no entanto, requer o iPhone OS 2.2 ou superior. Um exemplo simples:
NSString *soundFilePath =
[[NSBundle mainBundle] pathForResource: @"sound"
ofType: @"wav"];
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: soundFilePath];
AVAudioPlayer *newPlayer =
[[AVAudioPlayer alloc] initWithContentsOfURL: fileURL
error: nil];
[fileURL release];
[newPlayer play];
[newPlayer release];
Ele vai jogar praticamente qualquer formato de arquivo (AIFF, WAV, MP3, AAC) Tenha em mente que você só pode jogar um ficheiro MP3 / AAC de cada vez.
Outras dicas
Aqui é a maneira mais simples que eu conheço:
-
Converta seu arquivo de som para café (uso afconvert ferramenta de linha de comando) e adicionar ao seu projeto.
CAF significa Format Core Audio (eu acho ...)
-
Procure SoundEffect.h e .m no código de exemplo da Apple. Eu acredito que ambos Metronome e BubbleLevel tê-lo.
- Copiar para seu projeto
-
Escrever código como abaixo:
SoundEffect *SimpleSound = [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"soundfile" ofType:@"caf"]]; [SimpleSound play]; [SimpleSound release];
Estudo SoundEffect.m para ter uma idéia de manipulação de som simples.