Я уже расшифровал файл mp3 с помощью FFmpeg и попытался воспроизвести его с помощью AudioQueue. Если я установлю структуру ASBD следующим образом:
AudioStreamBasicDescription audioFormat = {
.mSampleRate = 44100,
.mFormatID = kAudioFormatLinearPCM,
.mChannelsPerFrame = 2,
.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked,
.mBitsPerChannel = 16,
.mBytesPerPacket = 4,
.mBytesPerFrame = 4,
.mFramesPerPacket = 1,
};
Звук может воспроизводиться, но он звучит странно и немного шумно.
Если я воспроизводю mp3-файл напрямую с AudioQueue, ASBD показывается ниже:
AudioStreamBasicDescription audioFormat = {
.mSampleRate = 44100,
.mFormatID = kAudioFormatMPEGLayer3,
.mChannelsPerFrame = 2,
.mFormatFlags = 0,
.mBitsPerChannel = 0,
.mBytesPerPacket = 1152,
.mBytesPerFrame = 0,
.mFramesPerPacket = 0,
};
Когда я пытаюсь установить ASBD для декодирования Данные, как указано выше, AudioQueue не запускается с кодом ошибки -66674.
Что-то не так с ASBD? Как правильно установить?