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

Foi útil?

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?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top