.wav para qualquer formato compactado do AVAssetWritter ios
Bem, o problema que estou enfrentando agora é um problema de tamanho. Estou permitindo que o usuário escolha uma música da sua biblioteca e, em seguida, divida-a em pedaços, para poder usar o arquivo .wav ou .mp3 em seu computador com o compartilhamento de arquivos ativado. Basicamente, estou usando as seguintes opções do AVAssetWritter e continuo recebendo um enorme arquivo de áudio enorme. POR EXEMPLO. 5 minutos de música são cerca de 50 MB. Eu estou olhando para tentar reduzir isso para um setor dado o tamanho padrão. Sinto que isso tem a ver com o fato de estar usando o LinearPCM como uma das minhas opções, mas quando altero essa ou qualquer uma das Opções de áudio, o gravador não pode escrever. Também estou alterando o parâmetro FileType no AVAssetWritter. Aqui está o meu código que funciona completamente bem. Eu só preciso encontrar um pouco para comprimir ou reduzir os arquivo
AVAssetWriter *assetWriter = [[AVAssetWriter assetWriterWithURL:exportURL
fileType:AVFileTypeWAVE
error:&assetError]
NSDictionary *outputSettings = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:kAudioFormatLinearPCM], AVFormatIDKey,
[NSNumber numberWithFloat:41000.0], AVSampleRateKey,
[NSNumber numberWithInt:2], AVNumberOfChannelsKey,
[NSData dataWithBytes:&channelLayout length:sizeof(AudioChannelLayout)], AVChannelLayoutKey,
[NSNumber numberWithInt:16], AVLinearPCMBitDepthKey,
[NSNumber numberWithBool:NO], AVLinearPCMIsNonInterleaved,
[NSNumber numberWithBool:NO],AVLinearPCMIsFloatKey,
[NSNumber numberWithBool:NO], AVLinearPCMIsBigEndianKey,
nil];
AVAssetWriterInput *assetWriterInput = [[AVAssetWriterInput assetWriterInputWithMediaType:AVMediaTypeAudio
outputSettings:outputSettings]
retain];
Qualquer ajuda na compactação ou no uso do meu AVAssetWritter para gravar em codec diferente em vez de WAVE ou CoreAudioFormat seria muito apreciad
EDIT: Se houver uma maneira de ir direto da biblioteca de música para .m4a em vez de .wav, essa seria a abordagem ideal que eu gostaria de seguir!
Obrigado, Nick
RESPOND
Estas são as opções de áudio corretas para .m4a e se você deseja que o usuário o veja como um arquivo .mp3 ou .wav, basta anexá-las ao final do nome do arquivo!
AudioChannelLayout channelLayout;
memset(&channelLayout, 0, sizeof(AudioChannelLayout));
channelLayout.mChannelLayoutTag = kAudioChannelLayoutTag_Stereo;
NSDictionary *outputSettings = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt: kAudioFormatMPEG4AAC], AVFormatIDKey,
[NSNumber numberWithFloat:44100.0], AVSampleRateKey,
[NSNumber numberWithInt:2], AVNumberOfChannelsKey,
[NSNumber numberWithInt:128000], AVEncoderBitRateKey,
[NSData dataWithBytes:&channelLayout length:sizeof(AudioChannelLayout)], AVChannelLayoutKey,
nil];