AVAudioPlayerNode
Соответствует
-
AVAudio3DMixing -
AVAudioMixing -
AVAudioStereoMixing -
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSObjectProtocol -
Печатаемый -
AVAudioMixing -
NSObject
Оператор импорта
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не указывает ни одного допустимое демонстрационное время или время узла.Кадр запуска сегмента или количество кадра отрицательны.
-
scheduleBuffer (_: atTime:options:completionHandler:) - scheduleBuffer:atTime:options:completionHandler:Расписание играя выборки от аудио буфера в требуемое время и с указанными опциями воспроизведения.
Объявление
Swift
func scheduleBuffer(_buffer: AVAudioPCMBuffer!, atTimewhen: AVAudioTime!, optionsoptions: AVAudioPlayerNodeBufferOptions, completionHandlercompletionHandler: AVAudioNodeCompletionHandler!)Objective C
- (void)scheduleBuffer:(AVAudioPCMBuffer *)bufferatTime:(AVAudioTime *)whenoptions:(AVAudioPlayerNodeBufferOptions)optionscompletionHandler:(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!, completionHandlercompletionHandler: AVAudioNodeCompletionHandler!)Objective C
- (void)scheduleBuffer:(AVAudioPCMBuffer *)buffercompletionHandler:(AVAudioNodeCompletionHandler)completionHandlerПараметры
bufferБуфер для игры.
completionHandlerВызванный после того, как буфер полностью играл, или проигрыватель останавливается. Может быть
nil.Обсуждение
Планирует буфер, который будет играться после любых ранее запланированных команд.
Оператор импорта
Objective C
@import AVFoundation;Swift
import AVFoundationДоступность
Доступный в iOS 8.0 и позже.
-
Игра расписания всего аудиофайла.
Объявление
Swift
func scheduleFile(_file: AVAudioFile!, atTimewhen: AVAudioTime!, completionHandlercompletionHandler: AVAudioNodeCompletionHandler!)Objective C
- (void)scheduleFile:(AVAudioFile *)fileatTime:(AVAudioTime *)whencompletionHandler:(AVAudioNodeCompletionHandler)completionHandlerПараметры
fileURL файла для игры.
whenВремя, в которое можно играть буфер. Посмотрите
Scheduling Playback Timeдля получения дополнительной информации.completionHandlerВызванный после того, как буфер полностью играл, или проигрыватель останавливается. Может быть
nil.Оператор импорта
Objective C
@import AVFoundation;Swift
import AVFoundationДоступность
Доступный в iOS 8.0 и позже.
-
scheduleSegment (_: startingFrame:frameCount:atTime:completionHandler:) - scheduleSegment:startingFrame:frameCount:atTime:completionHandler:Расписание играя сегмент аудиофайла.
Объявление
Swift
func scheduleSegment(_file: AVAudioFile!, startingFramestartFrame: AVAudioFramePosition, frameCountnumberFrames: AVAudioFrameCount, atTimewhen: AVAudioTime!, completionHandlercompletionHandler: AVAudioNodeCompletionHandler!)Objective C
- (void)scheduleSegment:(AVAudioFile *)filestartingFrame:(AVAudioFramePosition)startFrameframeCount:(AVAudioFrameCount)numberFramesatTime:(AVAudioTime *)whencompletionHandler:(AVAudioNodeCompletionHandler)completionHandlerПараметры
fileURL файла для игры.
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 playerNSError *nsErr = nil;[_engine startAndReturnError:&nsErr];if (!nsErr) {const float kStartDelayTime = 0.5; // secAVAudioFormat *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, и не продолжится, пока узел не запускается снова путем отправки aplayилиplayAtTime:сообщение.Оператор импорта
Objective C
@import AVFoundation;Swift
import AVFoundationДоступность
Доступный в iOS 8.0 и позже.
См. также
-
Опции, управляющие буферным планированием.
Объявление
Swift
struct AVAudioPlayerNodeBufferOptions : RawOptionSetType { init(_rawValue: UInt) init(rawValuerawValue: 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;Константы
-
LoopsAVAudioPlayerNodeBufferLoopsБуферные циклы неопределенно.
Доступный в iOS 8.0 и позже.
-
InterruptsAVAudioPlayerNodeBufferInterruptsБуфер, уже прерывает любой буфер играя.
Доступный в iOS 8.0 и позже.
-
InterruptsAtLoopAVAudioPlayerNodeBufferInterruptsAtLoopБуфер, уже прерывает любой буфер играя в его точке цикла.
Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import AVFoundation;Swift
import AVFoundationДоступность
Доступный в iOS 8.0 и позже.
-
