AudioQueueProcessingTapDelegate Делегат
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Подпись для обработчиков обратного вызова Tap AudioQueue.
public delegate uint AudioQueueProcessingTapDelegate(AudioQueueProcessingTap audioQueueTap, uint numberOfFrames, ref AudioTimeStamp timeStamp, ref AudioQueueProcessingTapFlags flags, AudioBuffers data);
type AudioQueueProcessingTapDelegate = delegate of AudioQueueProcessingTap * uint32 * * * AudioBuffers -> uint32
Параметры
- audioQueueTap
- AudioQueueProcessingTap
Контекст для обратного вызова предоставляет доступ к ресурсам, которые может использовать Tap, и параметрам конфигурации Tap.
- numberOfFrames
- UInt32
Количество кадров, которые должен отрисовыть метод.
- timeStamp
- AudioTimeStamp
Для входных очередей верните метку времени, для очередей вывода — текущую метку времени.
В записи флаги описывают тип выполняемого касания (PreEffect, PostEffect или Siphon). Он также может содержать значение StartOfStream, указывающее, что запрашивается сброс до начала. В выходных данных он должен обновить флаги StartOfStream и EndOfStream.
- data
- AudioBuffers
Сифонные краны могут проверять содержимое отдельных аудиобуферов на месте, но не должны вносить в него изменения. Другие касания должны выделять и заполнять буферы по мере необходимости.
Возвращаемое значение
Количество кадров, предоставленных в данных.
Комментарии
Вызывайте GetSourceAudio, пока не будет получено требуемое количество аудиокадров, необходимых для работы касания.
Если касания не могут заполнить запрошенные кадры, AudioQueue заполнит пробел тишиной.
При записи флаги могут содержать запрос StartOfStream, а также сведения о типе касания (выполняется до эффекта, после эффекта или просто сифона). Обратный вызов может изменять буферы данных для случаев, отличных от Сифона. Для Сифона он должен просто изучить, но не изменять содержимое.
При выходе из случаев, отличных от Сифона, флаги должны быть обновлены с помощью флагов StartOfStream и EndOfStream в зависимости от возвращаемых значений метода AudioQueueProcessingTapGetSourceAudio.
Для случаев без сифона касание должно выделить содержимое содержимого AudioBuffer и убедиться, что оно остается действительным до следующего вызова обратного вызова Tap.