Я хочу настроить AudioStreamBasicDescription
с постоянный битрейт Тип AAC.
AudioStreamBasicDescription clientFormat = {0};
clientFormat.mSampleRate = 44100.0;
clientFormat.mFormatID = kAudioFormatMPEG4AAC;
clientFormat.mFormatFlags = kMPEG4Object_AAC_Main;
clientFormat.mChannelsPerFrame = 2;
clientFormat.mBytesPerPacket = 0;
clientFormat.mBytesPerFrame = 0;
clientFormat.mFramesPerPacket = 1024;
clientFormat.mBitsPerChannel = 0;
clientFormat.mReserved = 0;
За mBytesPerPacket
документация Apple гласит:
Количество байтов в пакете аудиоданных. Для указания переменной
размер пакета, установите это поле равным 0. Для формата, который использует переменную
размер пакета, укажите размер каждого пакета, используя
Структура AudioStreamPacketDescription.
Я хочу, чтобы он был константой, поэтому я должен вставить туда ненулевое значение (желаемый размер), но все, кроме 0, не работает.
Любая помощь в этом?
Оказывается, мы можем установить свойства кодека прямо на AudioConverter.
Так я и сделал:
AudioConverterSetProperty(acRef, kAudioCodecPropertyBitRateControlMode,
sizeof(control_mode), &control_mode);
AudioConverterSetProperty(acRef, kAudioCodecPropertyCurrentTargetBitRate,
sizeof(_bitRate), &_bitRate);
Других решений пока нет …