Domanda

Sto usando AvassetWriterInput per prendere un file MP3 dall'utente e e -mail (solo DRM gratuito). Ho avuto il processo per funzionare quando uso PCM, ma quando provo MP3, o M4A o CAF, o ottengo un file che non funziona o ottengo dati vuoti. Penso che sia dovuto alle mie impostazioni di output. Le impostazioni di output utilizzate che non disegnano dati sono di seguito. Sono aperto a cambiarlo tutto. Grazie!

    NSDictionary *outputSettings = [NSDictionary dictionaryWithObjectsAndKeys:
                                [ NSNumber numberWithInt: kAudioFormatMPEG4AAC], AVFormatIDKey,
                                [ NSNumber numberWithInt: 1 ], AVNumberOfChannelsKey,
                                [ NSNumber numberWithFloat: 44100.0 ], AVSampleRateKey,
                                [ NSData dataWithBytes: &channelLayout length: sizeof( AudioChannelLayout ) ], AVChannelLayoutKey,
                                [ NSNumber numberWithInt: 64000 ], AVEncoderBitRateKey,
                                nil];
È stato utile?

Soluzione

Apple non fornisce API per scrivere File Mp3, forse perché MP3 è solo pacchetti senza intestazione e semplicemente scrivere i pacchetti grezzi funziona bene.

Per quanto riguarda la scrittura di dati AAC nei contenitori M4A/CAF, non ne sono sicuro, ma che AvencoDerBatrateKey non dovrebbe assolutamente essere lì perché non stai codificando nulla - stai solo passando dati. Quindi perché non dimenticare AvassetWriter e utilizzare un AvasseTexportSession con un preimpostazione passthrough?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top