play(at:)
Starts or resumes playback at a time you specify.
Declaration
func play(at when: AVAudioTime?)Parameters
- when:
The node time to start or resume playback. Passing
nilstarts playback immediately.
Discussion
This node is initially in a paused state. The framework enqueues your requests to play buffers or file segments, and any necessary decoding begins immediately. Playback doesn’t begin until the player starts playing through this method.
The following example code shows how to start a player 0.5 seconds in the future:
// Start the 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];
}