Gravação de som como WAV no iphone
-
05-09-2019 - |
Pergunta
Eu estou fazendo um aplicativo de gravação de iPhone que precisa enviar o arquivo de som como um .wav para um servidor externo.
A partir do exemplo SpeakHere, eu sou capaz de gravar som como um arquivo, mas apenas como .caf
Alguém sabe como gravar-lo como um wav em vez disso? Ou como converter de .caf para .wav no iphone? (A conversão deve acontecer no telefone)
EDIT:
Eu estou querendo saber se algo pode ser feito com o uso de kAudioFileWAVEType vez de kAudioFileCAFType em AudioFileCreateWithURL
Solução
Sim, a chave é kAudioFileWAVEType
AudioFileCreateWithURL (
audioFileURL,
kAudioFileWAVEType,
&audioFormat,
kAudioFileFlags_EraseFile,
&audioFileID
);
Mudar para WAVE da CAF no exemplo SpeakHere faz com que a gravação seja tão wav. Eu também editar a mesma coisa na classe reprodução, e mudou o nome do arquivo a ser Recording.wav
Outras dicas
Tenha um olhar em libsndfile . É um bem usado (inclusive por Audacity) biblioteca C para trabalhar com lotes de formatos de arquivo. Ele suporta ler e escrever de uma variedade de CAF e WAV.
A estrutura CAF Arquivo e formato WAV são bastante semelhantes. Se o pior vem a pior, convertendo não deve ser muito difícil.
Isso envolveria tomar o pedaço de dados de áudio e copiar como é para o arquivo WAV, e usando as informações na descrição Chunk áudio para adicionar um equivalente fmt subchunk para o arquivo WAV. É bastante simples cópia byte.
No entanto, estar ciente (como Eric apontou), existem problemas de licenciamento, consulte: pode a biblioteca Libsndfile ser usado no iPhone iOS?