Plays an audio track via AVAudioPlayer. More...
#import <OALAudioTrack.h>
Instance Methods | |
(bool) | - preloadUrl: |
Preload the contents of a URL for playback. More... | |
(bool) | - preloadUrl:seekTime: |
Preload the contents of a URL for playback. More... | |
(bool) | - preloadFile: |
Preload the contents of a file for playback. More... | |
(bool) | - preloadFile:seekTime: |
Preload the contents of a file for playback. More... | |
(bool) | - preloadUrlAsync:target:selector: |
Asynchronously preload the contents of a URL for playback. More... | |
(bool) | - preloadUrlAsync:seekTime:target:selector: |
Asynchronously preload the contents of a URL for playback. More... | |
(bool) | - preloadFileAsync:target:selector: |
Asynchronously preload the contents of a file for playback. More... | |
(bool) | - preloadFileAsync:seekTime:target:selector: |
Asynchronously preload the contents of a file for playback. More... | |
(bool) | - playUrl: |
Play the contents of a URL once. More... | |
(bool) | - playUrl:loops: |
Play the contents of a URL and loop the specified number of times. More... | |
(bool) | - playFile: |
Play the contents of a file once. More... | |
(bool) | - playFile:loops: |
Play the contents of a file and loop the specified number of times. More... | |
(void) | - playUrlAsync:target:selector: |
Play the contents of a URL asynchronously once. More... | |
(void) | - playUrlAsync:loops:target:selector: |
Play the contents of a URL asynchronously and loop the specified number of times. More... | |
(void) | - playFileAsync:target:selector: |
Play the contents of a file asynchronously once. More... | |
(void) | - playFileAsync:loops:target:selector: |
Play the contents of a file asynchronously and loop the specified number of times. More... | |
(bool) | - play |
Play the currently loaded audio track. More... | |
(bool) | - playAtTime: |
Plays a sound asynchronously, starting at a specified point in the audio output device’s timeline. More... | |
(bool) | - playAfterTrack: |
Plays the currently preloaded track asynchronously when the specified track completes. More... | |
(bool) | - playAfterTrack:timeAdjust: |
Plays the currently preloaded track asynchronously when the specified track completes. More... | |
(void) | - stop |
Stop playing and stop all operations. More... | |
(void) | - fadeTo:duration:target:selector: |
Fade to the specified gain value. More... | |
(void) | - stopFade |
Stop the currently running fade operation, if any. More... | |
(void) | - panTo:duration:target:selector: |
Pan to the specified pan value. More... | |
(void) | - stopPan |
Stop the currently running pan operation, if any. More... | |
(void) | - stopActions |
Stop any internal fade or pan actions. More... | |
(void) | - clear |
Unload and clear all audio data, stop playing, and stop all operations. More... | |
(void) | - updateMeters |
Updates the metering system to give current values. More... | |
(float) | - averagePowerForChannel: |
Gives the average power for a given channel, in decibels, for the sound being played. More... | |
(float) | - peakPowerForChannel: |
Gives the peak power for a given channel, in decibels, for the sound being played. More... | |
Instance Methods inherited from <OALSuspendManager> | |
(void) | - addSuspendListener: |
Add a listener that will receive manual suspend and interrupt events. More... | |
(void) | - removeSuspendListener: |
Remove a registered listener. More... | |
Class Methods | |
(id) | + track |
Create a new audio track. More... | |
Protected Attributes | |
bool | interrupted |
AVAudioPlayer * | simulatorPlayerRef |
When the simulator is running (and the playback fix is in use), player will be copied to here, and then player set to nil. More... | |
NSOperationQueue * | operationQueue |
Operation queue for running asynchronous operations. More... | |
OALAction * | gainAction |
The current action being applied to gain. More... | |
OALAction * | panAction |
The current action being applied to pan. More... | |
OALSuspendHandler * | suspendHandler |
Handles suspending and interrupting for this object. More... | |
Properties | |
NSURL * | currentlyLoadedUrl |
The URL of the currently loaded audio data. More... | |
id< AVAudioPlayerDelegate > | delegate |
Optional object that will receive notifications for decoding errors, audio interruptions (such as an incoming phone call), and playback completion. More... | |
float | gain |
The gain (volume) for playback (0.0 - 1.0, where 1.0 = no attenuation). More... | |
float | volume |
The volume (alias to gain) for playback (0.0 - 1.0, where 1.0 = no attenuation). More... | |
float | pan |
Pan value (-1.0 = far left, 1.0 = far right). More... | |
bool | muted |
If true, audio track is muted. More... | |
bool | autoPreload |
If true, automatically preload again when playback stops. More... | |
bool | preloaded |
If true, audio track is in preloaded state. More... | |
NSInteger | numberOfLoops |
The number of times to loop playback (-1 = forever). More... | |
bool | paused |
If true, pause playback. More... | |
AVAudioPlayer * | player |
Access to the underlying AVAudioPlayer object. More... | |
bool | playing |
If true, the audio player is currently playing. More... | |
NSTimeInterval | currentTime |
The current playback position in seconds from the start of the sound. More... | |
NSTimeInterval | deviceCurrentTime |
The value of this property increases monotonically while an audio player is playing or paused. More... | |
NSTimeInterval | duration |
The duration, in seconds, of the currently loaded sound. More... | |
NSUInteger | numberOfChannels |
The number of channels in the currently loaded sound. More... | |
bool | meteringEnabled |
If true, this track is recording metering data. More... | |
Properties inherited from <OALSuspendManager> | |
bool | suspended |
If YES, this object is suspended. More... | |
Properties inherited from <OALSuspendListener> | |
bool | manuallySuspended |
Set to YES to manually suspend. More... | |
bool | interrupted |
If YES, this object is interrupted. More... | |
Plays an audio track via AVAudioPlayer.
Unlike AVAudioPlayer, however, it can be re-used to play another file. Interruptions can be handled by OALAudioSupport (enabled by default).
- (float) averagePowerForChannel: | (NSUInteger) | channelNumber |
Gives the average power for a given channel, in decibels, for the sound being played.
0 dB indicates maximum power (full scale).
-160 dB indicates minimum power (near silence).
If the signal provided to the audio player exceeds full scale, then the value may be > 0.
Note: The value returned is in reference to when updateMeters was last called. You must call updateMeters again before calling this method to get a current value.
channelNumber | The channel to get the value from. For mono or left, use 0. For right, use 1. |
- (void) clear |
Unload and clear all audio data, stop playing, and stop all operations.
- (void) fadeTo: | (float) | gain | |
duration: | (float) | duration | |
target: | (id) | target | |
selector: | (SEL) | selector | |
Fade to the specified gain value.
gain | The gain to fade to. |
duration | The duration of the fade operation in seconds. |
target | The target to notify when the fade completes (can be nil). |
selector | The selector to call when the fade completes. The selector must accept a single parameter, which will be the object that performed the fade. |
- (void) panTo: | (float) | pan | |
duration: | (float) | duration | |
target: | (id) | target | |
selector: | (SEL) | selector | |
Pan to the specified pan value.
Note: This will have no effect on iOS versions prior to 4.0.
pan | The value to pan to. |
duration | The duration of the pan operation in seconds. |
target | The target to notify when the pan completes (can be nil). |
selector | The selector to call when the pan completes. The selector must accept a single parameter, which will be the object that performed the pan. |
- (float) peakPowerForChannel: | (NSUInteger) | channelNumber |
Gives the peak power for a given channel, in decibels, for the sound being played.
0 dB indicates maximum power (full scale).
-160 dB indicates minimum power (near silence).
If the signal provided to the audio player exceeds full scale, then the value may be > 0.
Note: The value returned is in reference to when updateMeters was last called. You must call updateMeters again before calling this method to get a current value.
channelNumber | The channel to get the value from. For mono or left, use 0. For right, use 1. |
- (bool) play |
Play the currently loaded audio track.
- (bool) playAfterTrack: | (OALAudioTrack*) | track |
Plays the currently preloaded track asynchronously when the specified track completes.
Note: This will have no effect on iOS versions prior to 4.0.
track | The track to play after |
- (bool) playAfterTrack: | (OALAudioTrack*) | track | |
timeAdjust: | (NSTimeInterval) | timeAdjust | |
Plays the currently preloaded track asynchronously when the specified track completes.
Note: This will have no effect on iOS versions prior to 4.0.
track | The track to play after |
timeAdjust | fine-tune value added to the time start offset. |
- (bool) playAtTime: | (NSTimeInterval) | time |
Plays a sound asynchronously, starting at a specified point in the audio output device’s timeline.
Note: This will have no effect on iOS versions prior to 4.0.
time | The time (device time) to start playing at. |
- (bool) playFile: | (NSString*) | path |
Play the contents of a file once.
path | The file containing the sound data. |
- (bool) playFile: | (NSString*) | path | |
loops: | (NSInteger) | loops | |
Play the contents of a file and loop the specified number of times.
path | The file containing the sound data. |
loops | The number of times to loop playback (-1 = forever) |
- (void) playFileAsync: | (NSString*) | path | |
loops: | (NSInteger) | loops | |
target: | (id) | target | |
selector: | (SEL) | selector | |
Play the contents of a file asynchronously and loop the specified number of times.
path | The file containing the sound data. |
loops | The number of times to loop playback (-1 = forever) |
target | the target to inform when playing has started. |
selector | the selector to call when playing has started. |
- (void) playFileAsync: | (NSString*) | path | |
target: | (id) | target | |
selector: | (SEL) | selector | |
Play the contents of a file asynchronously once.
path | The file containing the sound data. |
target | the target to inform when playing has started. |
selector | the selector to call when playing has started. |
- (bool) playUrl: | (NSURL*) | url |
Play the contents of a URL once.
url | The URL containing the sound data. |
- (bool) playUrl: | (NSURL*) | url | |
loops: | (NSInteger) | loops | |
Play the contents of a URL and loop the specified number of times.
url | The URL containing the sound data. |
loops | The number of times to loop playback (-1 = forever) |
- (void) playUrlAsync: | (NSURL*) | url | |
loops: | (NSInteger) | loops | |
target: | (id) | target | |
selector: | (SEL) | selector | |
Play the contents of a URL asynchronously and loop the specified number of times.
url | The URL containing the sound data. |
loops | The number of times to loop playback (-1 = forever) |
target | the target to inform when playing has started. |
selector | the selector to call when playing has started. |
- (void) playUrlAsync: | (NSURL*) | url | |
target: | (id) | target | |
selector: | (SEL) | selector | |
Play the contents of a URL asynchronously once.
url | The URL containing the sound data. |
target | the target to inform when playing has started. |
selector | the selector to call when playing has started. |
- (bool) preloadFile: | (NSString*) | path |
Preload the contents of a file for playback.
Once the audio data is preloaded, you can call "play" to play it.
path | The file containing the sound data. |
- (bool) preloadFile: | (NSString*) | path | |
seekTime: | (NSTimeInterval) | seekTime | |
Preload the contents of a file for playback.
Once the audio data is preloaded, you can call "play" to play it.
path | The file containing the sound data. |
seekTime | The position in the file to start playing at. |
- (bool) preloadFileAsync: | (NSString*) | path | |
seekTime: | (NSTimeInterval) | seekTime | |
target: | (id) | target | |
selector: | (SEL) | selector | |
Asynchronously preload the contents of a file for playback.
Once the audio data is preloaded, you can call "play" to play it.
path | The file containing the sound data. |
seekTime | The position in the file to start playing at. |
target | the target to inform when preparation is complete. |
selector | the selector to call when preparation is complete. |
- (bool) preloadFileAsync: | (NSString*) | path | |
target: | (id) | target | |
selector: | (SEL) | selector | |
Asynchronously preload the contents of a file for playback.
Once the audio data is preloaded, you can call "play" to play it.
path | The file containing the sound data. |
target | the target to inform when preparation is complete. |
selector | the selector to call when preparation is complete. |
- (bool) preloadUrl: | (NSURL*) | url |
Preload the contents of a URL for playback.
Once the audio data is preloaded, you can call "play" to play it.
url | The URL containing the sound data. |
- (bool) preloadUrl: | (NSURL*) | url | |
seekTime: | (NSTimeInterval) | seekTime | |
Preload the contents of a URL for playback.
Once the audio data is preloaded, you can call "play" to play it.
url | The URL containing the sound data. |
seekTime | The position in the file to start playing at. |
- (bool) preloadUrlAsync: | (NSURL*) | url | |
seekTime: | (NSTimeInterval) | seekTime | |
target: | (id) | target | |
selector: | (SEL) | selector | |
Asynchronously preload the contents of a URL for playback.
Once the audio data is preloaded, you can call "play" to play it.
url | The URL containing the sound data. |
seekTime | The position in the file to start playing at. |
target | the target to inform when preparation is complete. |
selector | the selector to call when preparation is complete. |
- (bool) preloadUrlAsync: | (NSURL*) | url | |
target: | (id) | target | |
selector: | (SEL) | selector | |
Asynchronously preload the contents of a URL for playback.
Once the audio data is preloaded, you can call "play" to play it.
url | The URL containing the sound data. |
target | the target to inform when preparation is complete. |
selector | the selector to call when preparation is complete. |
- (void) stop |
Stop playing and stop all operations.
- (void) stopActions |
Stop any internal fade or pan actions.
- (void) stopFade |
Stop the currently running fade operation, if any.
- (void) stopPan |
Stop the currently running pan operation, if any.
Note: This will have no effect on iOS versions prior to 4.0.
+ (id) track |
Create a new audio track.
- (void) updateMeters |
Updates the metering system to give current values.
You must call this method before calling averagePowerForChannel or peakPowerForChannel in order to get current values.
|
protected |
The current action being applied to gain.
|
protected |
Operation queue for running asynchronous operations.
Note: Only one asynchronous operation is allowed at a time.
|
protected |
The current action being applied to pan.
|
protected |
When the simulator is running (and the playback fix is in use), player will be copied to here, and then player set to nil.
This prevents other code from inadvertently raising the volume and starting playback.
|
protected |
Handles suspending and interrupting for this object.
|
readwritenonatomicassign |
If true, automatically preload again when playback stops.
|
readnonatomicretain |
The URL of the currently loaded audio data.
|
readwritenonatomicassign |
The current playback position in seconds from the start of the sound.
You can set this to change the playback position, whether it is currently playing or not.
|
readwritenonatomicassign |
Optional object that will receive notifications for decoding errors, audio interruptions (such as an incoming phone call), and playback completion.
Note: OALAudioTrack keeps a WEAK reference to delegate, so make sure you clear it when your object is going to be deallocated.
|
readnonatomicassign |
The value of this property increases monotonically while an audio player is playing or paused.
If more than one audio player is connected to the audio output device, device time continues incrementing as long as at least one of the players is playing or paused.
If the audio output device has no connected audio players that are either playing or paused, device time reverts to 0.
Use this property to indicate “now” when calling the playAtTime: instance method. By configuring multiple audio players to play at a specified offset from deviceCurrentTime, you can perform precise synchronization—as described in the discussion for that method.
Note: This will have no effect on iOS versions prior to 4.0.
|
readnonatomicassign |
The duration, in seconds, of the currently loaded sound.
|
readwritenonatomicassign |
The gain (volume) for playback (0.0 - 1.0, where 1.0 = no attenuation).
|
readwritenonatomicassign |
If true, this track is recording metering data.
If true, metering is enabled.
|
readwritenonatomicassign |
If true, audio track is muted.
|
readnonatomicassign |
The number of channels in the currently loaded sound.
|
readwritenonatomicassign |
The number of times to loop playback (-1 = forever).
Note: This value will be ignored, and get changed when you call the various playXX methods. Only "play" will use the current value of "numberOfLoops".
|
readwritenonatomicassign |
Pan value (-1.0 = far left, 1.0 = far right).
Note: This will have no effect on iOS versions prior to 4.0.
|
readwritenonatomicassign |
If true, pause playback.
|
readnonatomicretain |
Access to the underlying AVAudioPlayer object.
WARNING: Be VERY careful when accessing this, as some methods could cause it to fall out of sync with OALAudioTrack (particularly play/pause/stop methods).
|
readnonatomicassign |
If true, the audio player is currently playing.
If true, background music is currently playing.
We need to maintain our own value because AVAudioPlayer will sometimes say it's not playing when it actually is.
|
readnonatomicassign |
If true, audio track is in preloaded state.
|
readwritenonatomicassign |
The volume (alias to gain) for playback (0.0 - 1.0, where 1.0 = no attenuation).