Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Ссылка платформы AVFoundation ссылка класса AVAudioPlayerNode

Опции
Развертывание Target:

На этой странице
Язык:

AVAudioPlayerNode

Наследование


Оператор импорта


Swift

import AVFoundation

Objective C

@import AVFoundation;

Доступность


Доступный в iOS 8.0 и позже.

AVAudioPlayerNode класс играет буферы или сегменты аудиофайлов.

AVAudioPlayerNode поддержки планируя воспроизведение AVAudioBuffer экземпляры или сегменты аудиофайлов открылись через AVAudioFile. Буферы и сегменты могут быть запланированы в отдельных моментах своевременно, или сразу играть после предыдущих сегментов.

Обычно, Вы захотите сконфигурировать выходной формат узла с тем же числом каналов, как находятся в файлах и буферах, которые будут играться. Иначе, каналы будут отброшены или добавлены как требуется. Обычно лучше использовать AVAudioMixerNode сделать это.

Точно так же при игре сегментов файла, узел будет частота дискретизации преобразовывать при необходимости, но часто предпочтительно сконфигурировать выходную частоту дискретизации узла, чтобы соответствовать тот из файла (ов) и использовать микшер для выполнения преобразования уровня.

При игре буферов существует неявное предположение, что буферы в той же частоте дискретизации как выходной формат узла.

Этот класс переопределяет AVAudioNode метод reset и нерасписания все ранее запланированные буферы и сегменты файла, и также возвращают временную шкалу проигрывателя демонстрационному времени 0.

Временная шкала проигрывателя

Обычное AVAudioNode демонстрационные времена (как наблюдается lastRenderTime ) имейте произвольную нулевую точку. AVAudioPlayerNode накладывает вторую “временную шкалу проигрывателя” поверх этого, для отражения, когда проигрыватель был запущен, и интервалы, во время которых он был приостановлен. Методы nodeTimeForPlayerTime: и playerTimeForNodeTime: преобразуйте между двумя.

Планирование времени воспроизведения

scheduleBuffer:atTime:options:completionHandler:, scheduleFile:atTime:completionHandler:, и scheduleSegment:startingFrame:frameCount:atTime:completionHandler:методы берут AVAudioTime when параметр. Это интерпретируется следующим образом:

  • Если when параметр nil:

    • Если были предыдущие команды, новый сразу играется после последнего.

    • Иначе, если узел играет, событие играется в самом ближайшем будущем.

    • Иначе, команда играется в демонстрационное время 0.

  • Если when параметр является демонстрационным временем, параметр интерпретируется как таковой.

  • Если when параметр является временем узла, он проигнорирован если демонстрационное время, не допустимое.

Методы планирования перестанут работать если:

  • Количество каналов буфера не соответствует количество каналов выходного формата узла.

  • К файлу нельзя получить доступ.

  • AVAudioTime не указывает ни одного допустимое демонстрационное время или время узла.

  • Кадр запуска сегмента или количество кадра отрицательны.

  • Расписание играя выборки от аудио буфера в требуемое время и с указанными опциями воспроизведения.

    Объявление

    Swift

    func scheduleBuffer(_ buffer: AVAudioPCMBuffer!, atTime when: AVAudioTime!, options options: AVAudioPlayerNodeBufferOptions, completionHandler completionHandler: AVAudioNodeCompletionHandler!)

    Objective C

    - (void)scheduleBuffer:(AVAudioPCMBuffer *)buffer atTime:(AVAudioTime *)when options:(AVAudioPlayerNodeBufferOptions)options completionHandler:(AVAudioNodeCompletionHandler)completionHandler

    Параметры

    buffer

    Буфер для игры.

    when

    Время, в которое можно играть буфер. Посмотрите Scheduling Playback Time для получения дополнительной информации.

    options

    Опции воспроизведения. Посмотрите AVAudioPlayerNodeBufferOptions для возможных значений.

    completionHandler

    Вызванный после того, как буфер полностью играл, или проигрыватель останавливается. Может быть nil.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в iOS 8.0 и позже.

  • Расписание играя выборки от аудио буфера.

    Объявление

    Swift

    func scheduleBuffer(_ buffer: AVAudioPCMBuffer!, completionHandler completionHandler: AVAudioNodeCompletionHandler!)

    Objective C

    - (void)scheduleBuffer:(AVAudioPCMBuffer *)buffer completionHandler:(AVAudioNodeCompletionHandler)completionHandler

    Параметры

    buffer

    Буфер для игры.

    completionHandler

    Вызванный после того, как буфер полностью играл, или проигрыватель останавливается. Может быть nil.

    Обсуждение

    Планирует буфер, который будет играться после любых ранее запланированных команд.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в iOS 8.0 и позже.

  • Игра расписания всего аудиофайла.

    Объявление

    Swift

    func scheduleFile(_ file: AVAudioFile!, atTime when: AVAudioTime!, completionHandler completionHandler: AVAudioNodeCompletionHandler!)

    Objective C

    - (void)scheduleFile:(AVAudioFile *)file atTime:(AVAudioTime *)when completionHandler:(AVAudioNodeCompletionHandler)completionHandler

    Параметры

    file

    URL файла для игры.

    when

    Время, в которое можно играть буфер. Посмотрите Scheduling Playback Time для получения дополнительной информации.

    completionHandler

    Вызванный после того, как буфер полностью играл, или проигрыватель останавливается. Может быть nil.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в iOS 8.0 и позже.

  • Расписание играя сегмент аудиофайла.

    Объявление

    Swift

    func scheduleSegment(_ file: AVAudioFile!, startingFrame startFrame: AVAudioFramePosition, frameCount numberFrames: AVAudioFrameCount, atTime when: AVAudioTime!, completionHandler completionHandler: AVAudioNodeCompletionHandler!)

    Objective C

    - (void)scheduleSegment:(AVAudioFile *)file startingFrame:(AVAudioFramePosition)startFrame frameCount:(AVAudioFrameCount)numberFrames atTime:(AVAudioTime *)when completionHandler:(AVAudioNodeCompletionHandler)completionHandler

    Параметры

    file

    URL файла для игры.

    startFrame

    Позиция начального кадра в потоке.

    numberFrames

    Число кадров для игры.

    when

    Время, в которое можно играть буфер. Посмотрите Scheduling Playback Time для получения дополнительной информации.

    completionHandler

    Вызванный после того, как буфер полностью играл, или проигрыватель останавливается. Может быть nil.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в iOS 8.0 и позже.

  • Преобразуйте со времени проигрывателя до времени узла.

    Объявление

    Swift

    func nodeTimeForPlayerTime(_ playerTime: AVAudioTime!) -> AVAudioTime!

    Objective C

    - (AVAudioTime *)nodeTimeForPlayerTime:(AVAudioTime *)playerTime

    Параметры

    playerTime

    Время относительно времени начала проигрывателя.

    Возвращаемое значение

    Время узла.

    Обсуждение

    Этот метод и его инверсия playerTimeForNodeTime: обсуждены в The Player Timeline. Когда этот метод вызывают, если не играет проигрыватель nil возвращается.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в iOS 8.0 и позже.

  • Преобразуйте со времени узла до времени проигрывателя.

    Объявление

    Swift

    func playerTimeForNodeTime(_ nodeTime: AVAudioTime!) -> AVAudioTime!

    Objective C

    - (AVAudioTime *)playerTimeForNodeTime:(AVAudioTime *)nodeTime

    Параметры

    nodeTime

    Время узла.

    Возвращаемое значение

    Время относительно времени начала проигрывателя.

    Обсуждение

    Этот метод и его инверсия nodeTimeForPlayerTime: обсуждены в The Player Timeline. Когда этот метод вызывают, если не играет проигрыватель nil возвращается.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в iOS 8.0 и позже.

  • Подготавливает ранее запланированные области файла или буферы для воспроизведения.

    Объявление

    Swift

    func prepareWithFrameCount(_ frameCount: AVAudioFrameCount)

    Objective C

    - (void)prepareWithFrameCount:(AVAudioFrameCount)frameCount

    Параметры

    frameCount

    Число демонстрационных кадров данных, которые будут подготовлены перед возвратом.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в iOS 8.0 и позже.

  • Запустите или возобновите воспроизведение сразу.

    Объявление

    Swift

    func play()

    Objective C

    - (void)play

    Обсуждение

    Это эквивалентно playAtTime: со значением nil.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в iOS 8.0 и позже.

  • Запустите или возобновите воспроизведение в определенное время.

    Объявление

    Swift

    func playAtTime(_ when: AVAudioTime!)

    Objective C

    - (void)playAtTime:(AVAudioTime *)when

    Параметры

    when

    Время узла, в которое можно запустить или возобновить воспроизведение. Передача nil сразу запускает воспроизведение.

    Обсуждение

    Этот узел первоначально приостанавливается. Запросы для игры буферов или сегментов файла ставятся в очередь, и любое необходимое декодирование сразу начинается. Воспроизведение не начинается, однако, пока проигрыватель не начал играть через этот метод.

    Запустить проигрыватель 0.5 секунды в будущем:

    • // start engine and player
    • NSError *nsErr = nil;
    • [_engine startAndReturnError:&nsErr];
    • if (!nsErr) {
    • const float kStartDelayTime = 0.5; // sec
    • AVAudioFormat *outputFormat = [_player outputFormatForBus:0];
    • AVAudioFramePosition startSampleTime = _player.lastRenderTime.sampleTime + kStartDelayTime * outputFormat.sampleRate;
    • AVAudioTime *startTime = [AVAudioTime timeWithSampleTime:startSampleTime atRate:outputFormat.sampleRate];
    • [_player playAtTime:startTime];
    • }

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в iOS 8.0 и позже.

  • playing Свойство

    Указывает, играет ли проигрыватель. (только для чтения)

    Объявление

    Swift

    var playing: Bool { get }

    Objective C

    @property(nonatomic, readonly, getter=isPlaying) BOOL playing

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в iOS 8.0 и позже.

  • Воспроизведение паузы.

    Объявление

    Swift

    func pause()

    Objective C

    - (void)pause

    Обсуждение

    В то время как узел приостанавливается, демонстрационное время проигрывателя не совершенствуется.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в iOS 8.0 и позже.

    См. также

    – игра

  • Очистите все ранее запланированные события узла и воспроизведение остановки.

    Объявление

    Swift

    func stop()

    Objective C

    - (void)stop

    Обсуждение

    Все ранее запланированные события узла очищены, включая любого, которые являются посреди игры. Демонстрационное время узла (и поэтому времена, к которым должны быть запланированы новые события) сбрасываются к 0, и не продолжится, пока узел не запускается снова путем отправки a play или playAtTime: сообщение.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в iOS 8.0 и позже.

  • Опции, управляющие буферным планированием.

    Объявление

    Swift

    struct AVAudioPlayerNodeBufferOptions : RawOptionSetType { init(_ rawValue: UInt) init(rawValue rawValue: UInt) static var Loops: AVAudioPlayerNodeBufferOptions { get } static var Interrupts: AVAudioPlayerNodeBufferOptions { get } static var InterruptsAtLoop: AVAudioPlayerNodeBufferOptions { get } }

    Objective C

    enum { AVAudioPlayerNodeBufferLoops = 1UL << 0, AVAudioPlayerNodeBufferInterrupts = 1UL << 1, AVAudioPlayerNodeBufferInterruptsAtLoop = 1UL << 2 }; typedef NSUInteger AVAudioPlayerNodeBufferOptions;

    Константы

    • Loops

      AVAudioPlayerNodeBufferLoops

      Буферные циклы неопределенно.

      Доступный в iOS 8.0 и позже.

    • Interrupts

      AVAudioPlayerNodeBufferInterrupts

      Буфер, уже прерывает любой буфер играя.

      Доступный в iOS 8.0 и позже.

    • InterruptsAtLoop

      AVAudioPlayerNodeBufferInterruptsAtLoop

      Буфер, уже прерывает любой буфер играя в его точке цикла.

      Доступный в iOS 8.0 и позже.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в iOS 8.0 и позже.