Технические вопросы и ответы QA1678

ExtAudioFile - ExtAudioFileTell неправильная работа позиции вокруг

Q: Я вызываю ExtAudioFileTell для .m4a файла, содержащего аудио AAC (сразу после того, как я установил клиентский формат) и API, возвращает значение-2112 вместо 0. Это - знать проблема?

A: Я вызываю ExtAudioFileTell для .m4a файла, содержащего аудио AAC (сразу после того, как я установил клиентский формат) и API, возвращает значение-2112 вместо 0. Это - знать проблема?

ExtAudioFileTell в настоящее время всегда возвращает значение, которое является числом слишком маленьких кадров воспламенения.

ExtAudioFile APIs должен заботиться об этом смещении воспламенения от имени клиента, однако, поскольку поток битов AAC содержит 2 112 кадров воспламенения, ExtAudioFileTell возвращает значение, которое является слишком маленькими кадрами воспламенения, в этом случае-2112 вместо 0 (нуль).

Работа вокруг требует, чтобы клиент компенсировал:

  Фигура перечисления 1 значение исправления смещения.

...

    // call ExtAudioFileTell immediately after opening the file and setting the client format
    // and get the correction value to add to all future calls
    SInt64 frameOffset = 0;
    SInt64 frameOffsetCorrection = 0;

    ExtAudioFileTell(sourceFile, &frameOffset);

    if (frameOffset < 0) frameOffsetCorrection = -frameOffset;

...

Перечисление 2  Как общая работа вокруг всегда добавляет это исправление при вызове ExtAudioFileTell.

...      ExtAudioFileTell(sourceFile, &frameOffset);     frameOffset += frameOffsetCorrection;  ...


История версии документа


ДатаПримечания
07.12.2009

Новый документ, обсуждающий, как работать вокруг ошибки в ExtAudioFileTell, где возвращенное значение может быть слишком маленькими кадрами воспламенения.