Frameloss на iOS13 -> неиспользуемые записи - PullRequest
0 голосов
/ 27 сентября 2019

мое приложение записывает звук с kAudioFormatLinearPCM, настроенным в дер AudioStreamBasicDescription.На iOS12 все отлично работает (проверено загрузкой контейнера).После обновления до iOS13 аудиофайл сохраняется правильно, но при повторном открытии файла возвращается неправильный счетчик кадров. Аудио невозможно использовать.

Мы используем сочетание быстрого и объективного кода c.

My AudioStreamBasicDescription:

self.audioFormat = AudioStreamBasicDescription(
            mSampleRate:        Double(self.hardwareSampleRate),
            mFormatID:          kAudioFormatLinearPCM,
            mFormatFlags:       ( kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked ),
            mBytesPerPacket:    4,
            mFramesPerPacket:   1,
            mBytesPerFrame:     4,
            mChannelsPerFrame:  1,
            mBitsPerChannel:    32,
            mReserved:          0
        );
self.audioPlot = XOAudioPlotGL();
self.audioPlot.initialize(withSourceAudioFormat: self.audioFormat);

hardwareSampleReate = 44100

И повторное открытие файла:

CheckError(ExtAudioFileOpenURL(readURL, &mAudioFileRef), "Error: Open File");
CheckError(ExtAudioFileSetProperty(mAudioFileRef, kExtAudioFileProperty_ClientDataFormat, sizeof(audioFormat), &audioFormat), "Set Client Data Format");
CFRelease(readURL);

UInt32 propSize = sizeof(SInt64);
UInt32 numberOfFrames = 0;
CheckError(ExtAudioFileGetProperty(mAudioFileRef, kExtAudioFileProperty_FileLengthFrames, &propSize, &numberOfFrames), "Get Number of Frames");

Здесь возвращается более низкий номер Framenumber.

Я не вижу причины, по которой все это будет работать на iOS12, но не на iOS13.

Пожалуйста, дайте мне знать, если я что-то пропустил, или требуются дополнительные сведения.

Любая помощьоценили.

...