OALSimpleAudio Class Reference
Inherits from | NSObject |
---|---|
Declared in | OALSimpleAudio.h |
Overview
A simpler interface to the ObjectAL sound library. This singleton can be used alone for simpler audio needs, or in conjunction with user-created audio objects for more advanced needs (as is done in many of the demos).
For sound effects, it initializes OpenAL with the default ALDevice, an ALContext, and an ALChannelSource consisting of all 32 interruptible ALSource objects (the maximum currently allowed for iOS). If you want to create your own sources as well, change the reservedSources property.
For background audio, it creates a single OALAudioTrack, which will not reserve resources unless used. (you can create more OALAudioTrack objects for your own use if you want).
This singleton also provides access to the more common configuration options available in OALAudioSupport.
All audio playback commands are delegated either to the ALChannelSource (for sound effects), or to the OALAudioTrack (for BG music).
allowIpod
If YES, allow ipod music to continue playing (NOT SUPPORTED ON THE SIMULATOR).
Note: If this is enabled, and another app is playing music, background audio
playback will use the SOFTWARE codecs, NOT hardware.
@property (nonatomic, readwrite, assign) bool allowIpod
Discussion
If allowIpod = NO, the application will ALWAYS use hardware decoding.
iOS Only.
See Also
@property useHardwareIfAvailable
Default value: YES
Declared In
OALSimpleAudio.h
useHardwareIfAvailable
Determines what to do if no other application is playing audio and allowIpod = YES
(NOT SUPPORTED ON THE SIMULATOR).
@property (nonatomic, readwrite, assign) bool useHardwareIfAvailable
Discussion
If NO, the application will ALWAYS use software decoding. The advantage to this is that
the user can background your application and then start audio playing from another
application. If useHardwareIfAvailable = YES, the user won’t be able to do this.
If this is set to YES, the application will use hardware decoding if no other application
is currently playing audio. However, no other application will be able to start playing
audio if it wasn’t playing already.
Note: This switch has no effect if allowIpod = NO.
iOS Only.
See Also
Default value: YES
Declared In
OALSimpleAudio.h
honorSilentSwitch
If true, mute when backgrounded, screen locked, or the ringer switch is
turned off (NOT SUPPORTED ON THE SIMULATOR).
@property (nonatomic, readwrite, assign) bool honorSilentSwitch
Discussion
iOS Only.
Default value: YES
Declared In
OALSimpleAudio.h
reservedSources
The number of sources OALSimpleAudio is using (max 32 on current iOS devices).
@property (nonatomic, readwrite, assign) int reservedSources
Declared In
OALSimpleAudio.h
channel
The channel source used by OALSimpleAudio. Only mess with this if you know what you are doing!
@property (nonatomic, readonly, retain) ALChannelSource *channel
Declared In
OALSimpleAudio.h
backgroundTrackURL
Background audio URL
@property (nonatomic, readonly, retain) NSURL *backgroundTrackURL
Declared In
OALSimpleAudio.h
backgroundTrack
Background audio track
@property (nonatomic, readonly, retain) OALAudioTrack *backgroundTrack
Declared In
OALSimpleAudio.h
bgPaused
Pauses BG music playback
@property (nonatomic, readwrite, assign) bool bgPaused
Declared In
OALSimpleAudio.h
bgMuted
Mutes BG music playback
@property (nonatomic, readwrite, assign) bool bgMuted
Declared In
OALSimpleAudio.h
bgPlaying
If true, BG music is currently playing
@property (nonatomic, readonly, assign) bool bgPlaying
Declared In
OALSimpleAudio.h
bgVolume
Background music playback gain/volume (0.0 - 1.0)
@property (nonatomic, readwrite, assign) float bgVolume
Declared In
OALSimpleAudio.h
effectsPaused
Pauses effects playback
@property (nonatomic, readwrite, assign) bool effectsPaused
Declared In
OALSimpleAudio.h
effectsMuted
Mutes effects playback
@property (nonatomic, readwrite, assign) bool effectsMuted
Declared In
OALSimpleAudio.h
effectsVolume
Master effects gain/volume (0.0 - 1.0)
@property (nonatomic, readwrite, assign) float effectsVolume
Declared In
OALSimpleAudio.h
paused
Pauses everything
@property (nonatomic, readwrite, assign) bool paused
Declared In
OALSimpleAudio.h
muted
Mutes all audio
@property (nonatomic, readwrite, assign) bool muted
Declared In
OALSimpleAudio.h
preloadCacheEnabled
Enables/disables the preload cache. If the preload cache is disabled, effects preloading will do nothing (BG preloading will still work).
@property (nonatomic, readwrite, assign) bool preloadCacheEnabled
Declared In
OALSimpleAudio.h
preloadCacheCount
The number of items currently in the preload cache.
@property (nonatomic, readonly, assign) NSUInteger preloadCacheCount
Declared In
OALSimpleAudio.h
manuallySuspended
Set to YES to manually suspend the sound system.
@property (nonatomic, readwrite, assign) bool manuallySuspended
Declared In
OALSimpleAudio.h
interrupted
If YES, the sound system is interrupted. iOS Only.
@property (nonatomic, readonly, assign) bool interrupted
Declared In
OALSimpleAudio.h
suspended
If YES, the sound system is suspended.
@property (nonatomic, readonly, assign) bool suspended
Declared In
OALSimpleAudio.h
+ sharedInstanceWithSources:
Start OALSimpleAudio with the specified number of reserved sources.
Call this initializer if you want to use OALSimpleAudio, but keep some of the device’s
audio sources (there are 32 in total) for your own use.
Note: This method must be called ONLY ONCE, BEFORE
any attempt is made to access the shared instance.
To change the reserved sources after instantiation, modify reservedSources.
+ (OALSimpleAudio *)sharedInstanceWithSources:(int)sources
Parameters
sources |
the number of sources OALSimpleAudio will reserve for itself. |
---|
Return Value
The shared instance.
Declared In
OALSimpleAudio.h
+ sharedInstanceWithReservedSources:monoSources:stereoSources:
Start OALSimpleAudio with the specified parameters.
+ (OALSimpleAudio *)sharedInstanceWithReservedSources:(int)reservedSources monoSources:(int)monoSources stereoSources:(int)stereoSources
Parameters
reservedSources |
The number of sources to reserve for OALSimpleAudio’s use when initializing. iOS currently supports up to 32 sources total. |
---|---|
monoSources |
The GLOBAL number of sources supporting mono (default 28). |
stereoSources |
The GLOBAL number of sources supporting stereo (default 4). |
Return Value
The shared instance.
Discussion
With this initializer, you can set the total number of mono and stereo sources
available, as well as how many sources are to be reserved by OALSimpleAudio.
The number of mono and stereo sources represents the GLOBAL number of sources
available for EVERYONE, not just OALSimpleAudio. Their combined values must
not exceed 32 (the max allowed sources in iOS).
reservedSources is independent of this; it represents how many of the above
mentioned sources to reserve for OALSimpleAudio’s use.
Note: This method must be called ONLY ONCE, BEFORE
any attempt is made to access the shared instance.
Declared In
OALSimpleAudio.h
– initWithSources:
(INTERNAL USE) Initialize with the specified number of reserved sources.
- (id)initWithSources:(int)reservedSources
Parameters
reservedSources |
the number of sources to reserve when initializing. |
---|
Return Value
The shared instance.
Declared In
OALSimpleAudio.h
– initWithReservedSources:monoSources:stereoSources:
(INTERNAL USE) Initialize with the specified parameters.
- (id)initWithReservedSources:(int)reservedSources monoSources:(int)monoSources stereoSources:(int)stereoSources
Parameters
reservedSources |
The number of sources to reserve for OALSimpleAudio’s use when initializing. |
---|---|
monoSources |
The GLOBAL number of sources supporting mono (default 28). |
stereoSources |
The GLOBAL number of sources supporting stereo (default 4). |
Return Value
The shared instance.
Declared In
OALSimpleAudio.h
– preloadBg:
Preload background music.
- (bool)preloadBg:(NSString *)path
Parameters
path |
The path containing the background music. |
---|
Return Value
TRUE if the operation was successful.
Discussion
Note: only ONE background music file may be played or preloaded at a time via OALSimpleAudio. If you play or preload another file, the one currently playing will stop.
Declared In
OALSimpleAudio.h
– preloadBg:seekTime:
Preload background music.
- (bool)preloadBg:(NSString *)path seekTime:(NSTimeInterval)seekTime
Parameters
path |
The path containing the background music. |
---|---|
seekTime |
the position in the file to start playing at. |
Return Value
TRUE if the operation was successful.
Discussion
Note: only ONE background music file may be played or preloaded at a time via OALSimpleAudio. If you play or preload another file, the one currently playing will stop.
Declared In
OALSimpleAudio.h
– playBg
Play whatever background music is preloaded.
- (bool)playBg
Return Value
TRUE if the operation was successful.
Declared In
OALSimpleAudio.h
– playBgWithLoop:
Play whatever background music is preloaded.
- (bool)playBgWithLoop:(bool)loop
Parameters
loop |
If true, loop the bg track. |
---|
Return Value
TRUE if the operation was successful.
Declared In
OALSimpleAudio.h
– playBg:
Play the background music at the specified path.
If the music has not been preloaded, this method
will load the music and then play, incurring a slight delay.
- (bool)playBg:(NSString *)path
Parameters
path |
The path containing the background music. |
---|
Return Value
TRUE if the operation was successful.
Discussion
Note: only ONE background music file may be played or preloaded at a time via OALSimpleAudio. If you play or preload another file, the one currently playing will stop.
Declared In
OALSimpleAudio.h
– playBg:loop:
Play the background music at the specified path.
If the music has not been preloaded, this method
will load the music and then play, incurring a slight delay.
- (bool)playBg:(NSString *)path loop:(bool)loop
Parameters
path |
The path containing the background music. |
---|---|
loop |
If true, loop the bg track. |
Return Value
TRUE if the operation was successful.
Discussion
Note: only ONE background music file may be played or preloaded at a time via OALSimpleAudio. If you play or preload another file, the one currently playing will stop.
Declared In
OALSimpleAudio.h
– playBg:volume:pan:loop:
Play the background music at the specified path.
If the music has not been preloaded, this method
will load the music and then play, incurring a slight delay.
- (bool)playBg:(NSString *)filePath volume:(float)volume pan:(float)pan loop:(bool)loop
Parameters
filePath |
The path containing the sound data. |
---|---|
volume |
The volume (gain) to play at (0.0 - 1.0). |
pan |
Left-right panning (-1.0 = far left, 1.0 = far right) (Only on iOS 4.0+). |
loop |
If TRUE, the sound will loop until you call “stopBg”. |
Return Value
TRUE if the operation was successful.
Discussion
Note: only ONE background music
file may be played or preloaded at a time via OALSimpleAudio.
If you play or preload another file, the one currently playing
will stop. To play multiple audio tracks, create an OALAudioTrack.
Note: pan will have no effect when running on iOS versions prior to 4.0.
Declared In
OALSimpleAudio.h
– preloadEffect:
Preload and cache a sound effect for later playback.
- (ALBuffer *)preloadEffect:(NSString *)filePath
Parameters
filePath |
The path containing the sound data. |
---|
Declared In
OALSimpleAudio.h
– preloadEffect:reduceToMono:
Preload and cache a sound effect for later playback.
- (ALBuffer *)preloadEffect:(NSString *)filePath reduceToMono:(bool)reduceToMono
Parameters
filePath |
The path containing the sound data. |
---|---|
reduceToMono |
If true, reduce the sample to mono (stereo samples don’t support panning or positional audio). |
Declared In
OALSimpleAudio.h
– preloadEffect:reduceToMono:completionBlock:
Asynchronous preload and cache sound effect for later playback.
- (BOOL)preloadEffect:(NSString *)filePath reduceToMono:(bool)reduceToMono completionBlock:(void ( ^ ) ( ALBuffer *))completionBlock
Parameters
filePath |
an NSString with the path containing the sound data. |
---|---|
reduceToMono |
If true, reduce the sample to mono (stereo samples don’t support panning or positional audio). |
completionBlock |
Executed when loading is complete. |
Declared In
OALSimpleAudio.h
– preloadEffects:reduceToMono:progressBlock:
Asynchronous preload and cache multiple sound effects for later playback.
- (void)preloadEffects:(NSArray *)filePaths reduceToMono:(bool)reduceToMono progressBlock:(void ( ^ ) ( NSUInteger progress , NSUInteger successCount , NSUInteger total ))progressBlock
Parameters
filePaths |
An NSArray of NSStrings with the paths containing the sound data. |
---|---|
reduceToMono |
If true, reduce the samples to mono (stereo samples don’t support panning or positional audio). |
progressBlock |
Executed regularly while file loading is in progress. |
Declared In
OALSimpleAudio.h
– unloadEffect:
Unload a preloaded effect. Only unloads if no source is currently playing that effect (or paused with the effect loaded).
- (bool)unloadEffect:(NSString *)filePath
Parameters
filePath |
The path containing the sound data that was previously loaded. |
---|
Return Value
YES if the effect was unloaded. Turn on debug logging to see why an effect was not unloaded.
Declared In
OALSimpleAudio.h
– unloadAllEffects
Unload all preloaded effects that are not currently being played (paused or not). Turning on debug logging will show which effects were not unloaded. It is useful to put a call to this method in “applicationDidReceiveMemoryWarning” in your app delegate.
- (void)unloadAllEffects
Declared In
OALSimpleAudio.h
– playEffect:
Play a sound effect with volume 1.0, pitch 1.0, pan 0.0, loop NO. The sound will be loaded and cached if it wasn’t already.
- (id<ALSoundSource>)playEffect:(NSString *)filePath
Parameters
filePath |
The path containing the sound data. |
---|
Return Value
The sound source being used for playback, or nil if an error occurred.
Declared In
OALSimpleAudio.h
– playEffect:loop:
Play a sound effect with volume 1.0, pitch 1.0, pan 0.0. The sound will be loaded and cached if it wasn’t already.
- (id<ALSoundSource>)playEffect:(NSString *)filePath loop:(bool)loop
Parameters
filePath |
The path containing the sound data. |
---|---|
loop |
If TRUE, the sound will loop until you call “stop” on the returned sound source. |
Return Value
The sound source being used for playback, or nil if an error occurred.
Declared In
OALSimpleAudio.h
– playEffect:volume:pitch:pan:loop:
Play a sound effect. The sound will be loaded and cached if it wasn’t already.
- (id<ALSoundSource>)playEffect:(NSString *)filePath volume:(float)volume pitch:(float)pitch pan:(float)pan loop:(bool)loop
Parameters
filePath |
The path containing the sound data. |
---|---|
volume |
The volume (gain) to play at (0.0 - 1.0). |
pitch |
The pitch to play at (1.0 = normal pitch). |
pan |
Left-right panning (-1.0 = far left, 1.0 = far right). |
loop |
If TRUE, the sound will loop until you call “stop” on the returned sound source. |
Return Value
The sound source being used for playback, or nil if an error occurred (You’ll need to keep this if you want to be able to stop a looped playback).
Declared In
OALSimpleAudio.h
– playBuffer:volume:pitch:pan:loop:
Play a sound effect from a user-supplied buffer.
- (id<ALSoundSource>)playBuffer:(ALBuffer *)buffer volume:(float)volume pitch:(float)pitch pan:(float)pan loop:(bool)loop
Parameters
buffer |
The buffer containing the sound data. |
---|---|
volume |
The volume (gain) to play at (0.0 - 1.0). |
pitch |
The pitch to play at (1.0 = normal pitch). |
pan |
Left-right panning (-1.0 = far left, 1.0 = far right). |
loop |
If TRUE, the sound will loop until you call “stop” on the returned sound source. |
Return Value
The sound source being used for playback, or nil if an error occurred (You’ll need to keep this if you want to be able to stop a looped playback).
Declared In
OALSimpleAudio.h
– stopAllEffects
Stop ALL sound effect playback.
- (void)stopAllEffects
Declared In
OALSimpleAudio.h
– resetToDefault
Reset everything in this object to its default state.
- (void)resetToDefault
Declared In
OALSimpleAudio.h