AdaptrAudioPlayer Class Reference

Inherits from NSObject
Declared in AdaptrAudioPlayer.h

Overview

The SDK centers around a singleton instance of this AdaptrAudioPlayer class, which has simple methods to control music playback (play, pause, skip). The AdaptrAudioPlayer holds lists of Station objects (stationList and localOfflineStationList), one of which is always considered the active station (activeStation). Once music playback has begun, there is a current song (currentSong).

Typical initialization and setup is as follows:

As early as you can in your app’s lifecycle (preferably in your AppDelegate or initial ViewController) call

 [AdaptrAudioPlayer setclientToken:@"demo" secret:@"demo"]

to asynchronously contact the Adaptr servers, validate that the client is in a location that can legally stream music, and kick of a thread to retrieve a list of available streaming music stations.

There are a number of sample credentials you can use to assist in testing your app out. Use one of the following strings for your token and secret to get the desired behavior:

  • ‘demo’ - 3 simple stations with no skip limits
  • ‘badgeo’ - Adaptr will treat this client as if it were accessing from outside the US
  • ‘counting’ - a station that just plays really short audio clips of a voice saying the numbers 0 through 9

To receive notice that music is available or not available, use the whenAvailable:notAvailable: method call, which is guaranteed to call only one of its arguments as soon as music is deemed available or not:

AdaptrAudioPlayer *player = [AdaptrAudioPlayer sharedPlayer];

[player whenAvailable:^{
  NSLog(@"music is available!");
  // .. do something, now that you know music is available

 } notAvailable: ^{
    NSLog(@"music is not available!");
    // .. do something, like leave music button hidden

 }];

Because music may not be available to this particular client (due to lack of network connectivity or geographic restrictions), we recommend you leave music functionality hidden by default, and reveal it only when confirmation is returned.

Once music is available, use the play, pause, skip methods to control playback. The stationList and localOfflineStationList properties will contain lists of stations the user can switch to with the setActiveStation: and setActiveStation:withCrossfade: calls.

 // pick the station to play music from
 Station *station = [player.stationList getStationWithOptionKey: @"genre" Value: @"HipHop"];
 [player setActiveStation:station withCrossfade:NO];

 // when you have set the station that is about to begin playback, you
 // can optionally call prepareToPlay first so playback is immediate upon
 // calling 'play'
 [player prepareToPlay];

 // begin playback!
 // (if you called 'prepareToPlay', then you should first wait for
 // an AdaptrAudioPlayerMusicQueuedNotification notification to be guaranteed
 // that playback will start immediately on this call, with no intervening
 // network requests)
 [player play]

Offline music can be retrieved by selecting a station in the remoteOfflineStationList and passing it to downloadAndSyncStation:forTargetMinutes:withDelegate. That will cause the contents of the station to be downloaded onto the device (or updated with new music, if the station was already downloaded and new music is available), and a new Station entry in localOfflineStationList that can be passed to setActiveStation.

The AdaptrAudioPlayer registers with iOS so that playback can be paused, skipped, liked, and disliked via the lock screen. Additionally, iOS will display on the lock screen whatever image you’ve assigned via [AdaptrAudioPlayer setLockScreenImage:].

The ‘prepareToPlay’ method can be called before playback begins and when the client knows that the current station will immediately be played next. This call is primarily useful when you want music to begin playback immediately upon a call to play, with no intervening network requests.

The AdaptrAudioPlayer generates events that can be hooked into whatever analytics service your app uses. Just have an object in your app (your AppDelegate is a good choice) implement the AdaptrAudioPlayerLogger protocol. You just need to implement two methods: logEvent: and logEvent:withParameters:, and assign the object to [FeedMedia sharedPlayer].logger.

Setup

+ setClientToken:secret:

This method kicks off asynchronous initialization of the library and communication with the Adaptr servers. This call should be made as early as possible in the lifecycle of the app.

+ (void)setClientToken:(nonnull NSString *)token secret:(nonnull NSString *)secret

Parameters

token

public authentication token. Use @"demo" during testing/development.

secret

private authentication token. Use @"demo" during testing/development.

Declared In

AdaptrAudioPlayer.h

+ sharedPlayer

There is only one global AdaptrAudioPlayer instance, and it is available via this static property.

+ (nonnull AdaptrAudioPlayer *)sharedPlayer

Declared In

AdaptrAudioPlayer.h

+ setBaseUrl:

Change the base url of Api For Internal testing only

+ (void)setBaseUrl:(NSString *_Nonnull)url

Declared In

AdaptrAudioPlayer.h

– whenAvailable:notAvailable:

Call one of the two callbacks as soon as we know music is available for playback. One of these two blocks is guaranteed to be called, and only one call will ever be made. Just before the onAvailable callback is made, the list of available stations is fully populated.

- (void)whenAvailable:(nonnull void ( ^ ) ( void ))onAvailable notAvailable:(nonnull void ( ^ ) ( void ))onNotAvailable

Parameters

onAvailable

called when music becomes or already is available

onNotAvailable

called when we determine music is not available

Discussion

Note that the callbacks are only made after attempting to contact the Adaptr servers, even if local offline music is available while waiting for a response. If the player is unable to contact the Adaptr servers or they respond that no streaming music is available, but there is local offline music, then the onAvailable callback will be called.

If the player has already contacted (or failed to contact) the Adaptr servers, then one of the two calls passed callbacks will be called immediately, before this method returns.

Declared In

AdaptrAudioPlayer.h

– updateSession:

Called when there is need to update the stationlist from server. This method can be called periodically for long running apps that do not quit for multiple days If a new nession is not available then no callback will be recived

- (void)updateSession:(nonnull void ( ^ ) ( void ))onUpdatedSessionAvailable

Parameters

onUpdatedSessionAvailable

called when session is refreshed

Declared In

AdaptrAudioPlayer.h

Playback Controls

– prepareToPlay

Starts asynchronous loading of the first song in the active station so that a future call to play will start music instantaneously. This action runs asynchronously and, when it completes, triggers an AdaptrAudioPlayerPreCachingCompleted notification.

- (void)prepareToPlay

Declared In

AdaptrAudioPlayer.h

– restart

Restart current track

- (void)restart

Declared In

AdaptrAudioPlayer.h

– previous

Go back to previous track.

- (void)previous

Declared In

AdaptrAudioPlayer.h

– play

Starts retrieval and playback of music in the active station.

- (void)play

Declared In

AdaptrAudioPlayer.h

– playFromIndex:

Begin playback of previously loaded items but at a given index.

- (void)playFromIndex:(NSUInteger)index

Declared In

AdaptrAudioPlayer.h

– playAudioItem:

Start playback of specific song. This method only works with on-demand stations.

- (void)playAudioItem:(nonnull Audiofile *)audioItem

Parameters

audioItem

the audio item to immediately play

Declared In

AdaptrAudioPlayer.h

– pause

Pauses music playback.

- (void)pause

Declared In

AdaptrAudioPlayer.h

– stop

Stops music playback and discards any cached audio.

- (void)stop

Declared In

AdaptrAudioPlayer.h

– skip

Asynchronously request that the player skip the current song. If the request is successful, the current song will stop and the next will begin. If not, an AdaptrAudioPlayerSkipFailedNotification will be posted to the default notification center and the current song will continue playback.

- (void)skip

Declared In

AdaptrAudioPlayer.h

– like

Calls likeAudioItem: with the currently playing song

- (void)like

Declared In

AdaptrAudioPlayer.h

– likeAudioItem:

Marks the specified song as ‘liked’. Updates the [Audiofile liked] and [Audiofile disliked] properties.

- (void)likeAudioItem:(nonnull Audiofile *)audioItem

Parameters

audioItem

the audio item that is to be liked. If null, then the currently active audio item will be liked.

Discussion

This triggers an AdaptrAudioPlayerLikeStatusChangeNotification notification with a userInfo dictionary that contains the audioItem object indexed by AudiofileKey.

Declared In

AdaptrAudioPlayer.h

– dislike

Calls dislikeAudioItem: with the currently playing song

- (void)dislike

Declared In

AdaptrAudioPlayer.h

– dislikeAudioItem:

Marks the specified song as ‘disliked’. Updates the [Audiofile liked] and [Audiofile disliked] properties.

- (void)dislikeAudioItem:(nonnull Audiofile *)audioItem

Parameters

audioItem

the audio item that is to be disliked. If null, then the currently active audio item will be disliked.

Discussion

This triggers an AdaptrAudioPlayerLikeStatusChangeNotification notification with a userInfo dictionary that contains the audioItem object indexed by AudiofileKey.

Declared In

AdaptrAudioPlayer.h

– unlike

Calls unlikeAudioItem: with the currently playing song

- (void)unlike

Declared In

AdaptrAudioPlayer.h

– unlikeAudioItem:

Marks the specified song as neither ‘liked’ nor ‘disliked’. Updates the [Audiofile liked] and [Audiofile disliked] properties.

- (void)unlikeAudioItem:(nonnull Audiofile *)audioItem

Parameters

audioItem

the audio item that is to be unliked. If null, then the currently active audio item will be unliked.

Discussion

This triggers an AdaptrAudioPlayerLikeStatusChangeNotification notification with a userInfo dictionary that contains the audioItem object indexed by AudiofileKey.

Declared In

AdaptrAudioPlayer.h

– getClientId

Get currently Active ClientID

- (nullable NSString *)getClientId

Declared In

AdaptrAudioPlayer.h

– setClientId:

Sets a previously generated clientid to be the active id.

- (void)setClientId:(nonnull NSString *)cid

Parameters

cid

previously generated client id

Declared In

AdaptrAudioPlayer.h

– createNewClientId

Asynchronously generate a new client id for a new user. When this request is complete a NSNotification AdaptrAudioPlayerNewClientIdAvailable is triggered with userInfo dictionary that contains the clientid

- (void)createNewClientId

See Also

Declared In

AdaptrAudioPlayer.h

– setDefaultControlDelegate

Internal Method

- (void)setDefaultControlDelegate

Declared In

AdaptrAudioPlayer.h

– setPlayerControlDelegate:

Internal Method

- (void)setPlayerControlDelegate:(id<MixingAudioPlayer> _Nonnull)newPlayerControlDelegate

Declared In

AdaptrAudioPlayer.h

  autoNetworkRetryEnabled

Enable/Disable auto retrying of network failures. If network disappears and this option in enabled, player will wait until network is restored and resume music playback, insted of shutting down. This option must be set before setClientToken is called. By default this option is set to true. If this opiton is set and setClientToken call fails due to network failure the SDK will call onUnAvailable but as network is restored OnAvailable will be automatically called again.

@property (class, nonatomic) BOOL autoNetworkRetryEnabled

Declared In

AdaptrAudioPlayer.h

Playback Status

  playbackState

Current player state. As this state changes, an AdaptrAudioPlayerPlaybackStateDidChangeNotification is triggered with the default notification center.

@property (nonatomic, readonly) AdaptrAudioPlayerPlaybackState playbackState

Declared In

AdaptrAudioPlayer.h

  currentItem

The currently playing or paused song, or null if there is not one.

@property (nonatomic, readonly, nullable) Audiofile *currentItem

Declared In

AdaptrAudioPlayer.h

  currentPlaybackTime

The elapsed playback time of the current item.

@property (nonatomic, readonly) NSTimeInterval currentPlaybackTime

Declared In

AdaptrAudioPlayer.h

  currentItemDuration

Indicates the duration of the current item.

@property (nonatomic, readonly) NSTimeInterval currentItemDuration

Declared In

AdaptrAudioPlayer.h

  currentPlaybackRate

The current rate of playback. Slow/fast play is not supported, so this will always be 0.0 or 1.0

@property (nonatomic, readonly) float currentPlaybackRate

Declared In

AdaptrAudioPlayer.h

  canSkip

If false, then the user may not skip the currently playing song. If true, the user may be able to skip the current song, but the server will be queried and possibly reject the request. This property is updated every time a new song starts playback or after a failed skip attempt, and a AdaptrAudioPlayerSkipStatusNotification notification is sent any time this value changes.

@property (readonly) BOOL canSkip

See Also

Declared In

AdaptrAudioPlayer.h

  playHistory

This array holds all the Audiofiles that the user has heard since playback started, including the currently playing song. As new items start playback, they are appended to this array.

@property (nonatomic, readonly, nonnull) NSMutableArray<Audiofile*> *playHistory

Discussion

This history currently does not include songs from past sessions.

Declared In

AdaptrAudioPlayer.h

Playback options

  secondsOfCrossfade

The number of seconds to crossfade between songs. This defaults to 0. If crossfading values is set in server side, setting this value will have no effect as server side values have higher priority.

@property (nonatomic) float secondsOfCrossfade

Declared In

AdaptrAudioPlayer.h

  normalizeSongVolume

When true (the default), adjust individual song volumes so they are perceived be the same loudness.

@property (nonatomic) BOOL normalizeSongVolume

Declared In

AdaptrAudioPlayer.h

  mixVolume

A value between 0.0 and 1.0 relative to system volume

@property (nonatomic) float mixVolume

Declared In

AdaptrAudioPlayer.h

Current and available stations

  stationList

This is a list of streaming music stations retrieved from the server. This array will not change once populated.

@property (nonatomic, readonly, nonnull) StationArray *stationList

Declared In

AdaptrAudioPlayer.h

  localOfflineStationList

The list of stations available for immediate offline playback. This list contains any stations that have been downloaded at some point in the past with downloadAndSyncStation:forTargetMinutes:withDelegate.

@property (readonly, nonatomic, nonnull) StationArray *localOfflineStationList

Return Value

List of stations available on disk ready for playback. never returns nil.

Discussion

Stations listed here are available for playback even if there is no network connectivity, and this property is intialized as soon as the AdaptrAudioPlayer is created (before any attempt is made to contact the Adaptr servers.

When there is internet connectivity, every station in this list will have a paired station (with the same name, but not necessarily same ID) in the remoteOfflineStationList. Use remoteOfflineStationForLocalOfflineStation: to map to the remote Station. If they have different ‘identifier’ values, then the local station should be updated by passing its pair to downloadAndSyncStation:withDelegate.

Declared In

AdaptrAudioPlayer.h

  remoteOfflineStationList

List of stations that are available for downloading.

@property (readonly, nonatomic) StationArray *remoteOfflineStationList

Return Value

List of stations that can be downloaded for offline playback

Discussion

These stations cannot be tuned to (with setActiveStation:), rather they should be passed to downloadAndSyncSation:forTargetMinutes:withDelegate to be downloaded and made available for playback in the localOfflineStationList.

This property is only populated when internet connectivity is available and the player is declared ‘available’.

If one of these stations has been downloaded, the localOfflineStationForRemoteOfflineStation: method can be used to find the local equivalent for playback.

Declared In

AdaptrAudioPlayer.h

  activeStation

The current station from which music is pulled. Any Station retrieved from the stationList or localOfflineStationList properties can be assigned here. Once music is available, this property is never null. When this value changes, AdaptrAudioPlayerActiveStationDidChangeNotification is sent to the default notification center.

@property (nonatomic, copy, nonnull) Station *activeStation

Declared In

AdaptrAudioPlayer.h

Offline station management

– downloadAndSyncStation:forTargetMinutes:withDelegate:

Downloads an offline station.

- (void)downloadAndSyncStation:(nonnull Station *)remoteStation forTargetMinutes:(nullable NSNumber *)minutes withDelegate:(nonnull id<StationDownloadDelegate>)delegate

Parameters

remoteStation

A station from remoteOfflineStationList

minutes

describes target time for music. If you need music for half an hour pass 30.

delegate

for receiving updates about the download.

Discussion

This method kicks off an asynchronous download to retrieve audio files for the given station. As the station downloads, events (1 at a minimum) will be sent to the provided delegate.

The station passed in must come from the remoteOfflineStationList

The minutes attribute specifies the minimum number of minutes of music the client would like to be available offline. The server will make the decision as to whether the client already has enough music stored locally and, if so, whether that music should be replaced or appended to.

Note that if the requested station has already been downloaded or partially downloaded to local storage already, only missing music will be downloaded. Some stations can additionally be configured (on the server) so that only a subset of the full station contents are saved on client devices, and each request to downloadAndSyncStation: will cause recently played music to be deleted and new music to be downloaded.

Declared In

AdaptrAudioPlayer.h

– downloadAndSyncStation:withDelegate:

Downloads an offline station.

- (void)downloadAndSyncStation:(nonnull Station *)remoteStation withDelegate:(nonnull id<StationDownloadDelegate>)delegate

Parameters

remoteStation

Pass a station from remoteOfflineStationList

delegate

for receiving updates about the download.

Discussion

This method is the same as downloadAndSyncStation:forTargetMinutes:withDelegate, but it lets the server determine the ‘targetMinutes’ value. This method is preferable unless the amount of music to be loaded for each station varies in different contexts known only by the client.

Declared In

AdaptrAudioPlayer.h

– deleteOfflineStation:

Deletes all locally stored files in a previously downloaded station and removes the station from the localOfflineStationList.

- (void)deleteOfflineStation:(nonnull Station *)localOfflineStation

Parameters

localOfflineStation

the station whose contents will be deleted.

Discussion

Does nothing if the station passed in does not appear in the localOfflineStationList or if the station being deleted is the activeStation.

Declared In

AdaptrAudioPlayer.h

– deleteAllOfflineStations

Deletes all locally stored stations.

- (void)deleteAllOfflineStations

Discussion

This call does nothing if the current active station is a local offline station.

Declared In

AdaptrAudioPlayer.h

– localOfflineStationForRemoteOfflineStation:

Map a remote offline station to a local offline station.

- (nullable Station *)localOfflineStationForRemoteOfflineStation:(nonnull Station *)remoteOfflineStation

Parameters

remoteOfflineStation

a station from remoteOfflineStationList

Return Value

nil or a station from remoteOfflineStationList

Discussion

This method is useful in determining which of the available remote offline stations have been downloaded and stored as local offline stations.

When a remote station is downloaded, a duplicate Station instance is added to the local offline station array. If the remote station is updated (that is, music is added or deleted), then the remote Station instance will have an ID that differs from the Station instance in the local offline station array. This station maps the remote Station instance to its local Station instance, regardless of whether their contents match up exactly.

Declared In

AdaptrAudioPlayer.h

– remoteOfflineStationForLocalOfflineStation:

Map a locally stored offline station to its remote offline pair.

- (nullable Station *)remoteOfflineStationForLocalOfflineStation:(nonnull Station *)localOfflineStation

Parameters

localOfflineStation

a station from localOfflineStationList

Return Value

a station from remoteOfflineStationList

Discussion

This method is useful to determine if a locally downloaded station can be updated with new music. If the local Station identifier value doesn’t match the remote Station identifier value, then the remote Station can be passed to downloadAndSyncStation:withDelegate to update the local Station.

Declared In

AdaptrAudioPlayer.h

Logging and reporting

  logger

Any calls to logEvent: or logEvent:withParameters: are also sent to the logger assigned to this property, if any.

@property (nonatomic, weak, nullable) id<AdaptrAudioPlayerLogger> logger

Declared In

AdaptrAudioPlayer.h

– logEvent:

Everything logged here goes back to Adaptr and is also cc’d to the logger property

- (void)logEvent:(nonnull NSString *)event

Parameters

event

Log message

Declared In

AdaptrAudioPlayer.h

– logEvent:withParameters:

Everything logged here goes back to Adaptr and is also cc’d to the logger property

- (void)logEvent:(nonnull NSString *)event withParameters:(nonnull NSDictionary *)parameters

Parameters

event

Log message

parameters

Parameters

Declared In

AdaptrAudioPlayer.h

Misc..

  disableAVAudioSession

Disable the creation and management of AVAudioSession by Feed SDK completely

@property (nonatomic) BOOL disableAVAudioSession

Declared In

AdaptrAudioPlayer.h

  supportedAudioFormats

Order specifies priority (earlier elements are preferred). Nil-ing this property will allow any format to be served, but is not recommended. Set to FMAudioFormatMP3 to exclude AAC files. Defaults to @[FMAudioFormatAAC,FMAudioFormatMP3].

@property (nonatomic, strong, nullable) NSArray *supportedAudioFormats

Discussion

In the normal course of events, clients do not need to make use of this.

Declared In

AdaptrAudioPlayer.h

  maxBitrate

Set to specify available bandwidth, in kbps. Set to 0 to request the highest available quality. Defaults to 48.

@property (nonatomic) NSInteger maxBitrate

Declared In

AdaptrAudioPlayer.h

  statusBarNotification

This status bar notification is used to announce song changes to the user. Access the properties on this object to change how the notification is styled and to add handlers for when the notification is tapped.

@property (nonatomic, readonly, nullable) CWStatusBarNotification *statusBarNotification

Discussion

Details on this object can be found at https://github.com/cezarywojcik/CWStatusBarNotification

Declared In

AdaptrAudioPlayer.h

  disableSongStartNotifications

The player displays a notification at the top of the screen during song transitions by default. If you are currently showing the active song, which means a notification isn’t needed, it can be disabled by setting this property to YES. Don’t forget to set this to NO when you stop showing the active song.

@property (nonatomic) BOOL disableSongStartNotifications

Discussion

To alter how notifications are displayed, see the statusBarNotification property.

Declared In

AdaptrAudioPlayer.h

  doesHandleRemoteCommands

If YES (the default), then the Adaptr library will register with the MPRemoteCommandCenter to handle play/pause/skip/like/dislike commands upon start of playback.

@property (nonatomic) BOOL doesHandleRemoteCommands

Declared In

AdaptrAudioPlayer.h

  lockScreenDelegate

When not NULL, this causes the AdaptrAudioPlayer to not update the MPNowPlayingInfoCenter metadata nor enable or disable the like, dislike, and next track MPFeedbackCommands. See the documentation of FMLockScreenDelegate for more information. Note that the AdaptrAudioPlayer will still register to handle the MPRemoteCommandCenter commands (play/pause/skip/like/dislike) unless doesHandleRemoteCommands is also set to NO.

@property (nonatomic, nullable) id<LockScreenDelegate> lockScreenDelegate

Declared In

AdaptrAudioPlayer.h

– setLockScreenImage:

Assigns the image to be displayed on the lock screen when music is playing.

- (void)setLockScreenImage:(nonnull UIImage *)image

Parameters

image

The image to be added to the lock screen

Declared In

AdaptrAudioPlayer.h

+ nameForType:

Utility function to map state to string.

+ (nonnull NSString *)nameForType:(AdaptrAudioPlayerPlaybackState)type

Parameters

type

the playback state to map to an NSString

Declared In

AdaptrAudioPlayer.h

– destroy

Destroys the instance of the player, use this call if you wish to set new tokens.

- (void)destroy

Declared In

AdaptrAudioPlayer.h

– seekStationBy:

Seek station by give no of seconds. Max allowed value can be obtained by maxSeekableLength

- (void)seekStationBy:(NSTimeInterval)time

Parameters

time

in seconds

Declared In

AdaptrAudioPlayer.h

– maxSeekableLength

Max no of seconds that can be seeked in the current station

- (NSTimeInterval)maxSeekableLength

Return Value

Time in seconds

Declared In

AdaptrAudioPlayer.h

– setAVAudioSessionCategory:mode:options:

This method sets the default configuration values when the AdaptrAudioPlayer initializes an AVAudioSession.

- (void)setAVAudioSessionCategory:(nonnull AVAudioSessionCategory)category mode:(nonnull AVAudioSessionMode)mode options:(AVAudioSessionCategoryOptions)options

Parameters

category

category to request when player gets AVAudioSession

mode

mode to request when player gets AVAudioSession

options

category options to set when player gets AVAudioSession

Discussion

When playback starts, the AdaptrAudioPlayer needs to ensure there is an active AVAudioSession. By default, the player sets the AVAudioSessionCategory to AVAudioSessionCategoryPlayback, the mode to AVAudioSessionModeDefault, and the options to AVAudioSessionCategoryOptionMixWithOthers. If you would like the player to use alternate settings, assign them here before playback begins.

(note: this method does not immediately call AVAudioSession setCategory:mode:options:error - it only assigns the default values that the player will use when it needs to get an AVAudioSession)

Declared In

AdaptrAudioPlayer.h

– submitLogsForRemoteDebuggingWithLabel:

This method sends all Feed SDK generated logs since the start of the application to Adaptr for manual debugging. If you are experiencing unexpected behavior with the SDK, call this method after the bad behavior occurs and let your customer support person at feed know what value you passed for ‘label’.

- (void)submitLogsForRemoteDebuggingWithLabel:(nonnull NSString *)label

Parameters

label

a unique label to assist Adaptr engineers in finding this specific log

Declared In

AdaptrAudioPlayer.h

– searchForQuery:station:pageNo:resultsPerPage:withCallback:

End point to search for music in the current set of stations for the given token and secret. This does not search the whole catelog.

- (void)searchForQuery:(NSString *_Nonnull)query station:(NSString *_Nullable)stationId pageNo:(NSNumber *_Nonnull)page resultsPerPage:(NSNumber *_Nullable)resultsPerPage withCallback:(void ( ^ _Nonnull ) ( NSArray<Audiofile*> *_Nullable ))onResult

Parameters

query

Search query

stationId

optional search query if you wish to narrow the search to a specific station.

page

results page starts from 0

resultsPerPage

No of results per page, must be higher then zero default is 20

onResult

the block that will be called when results are available. The parameter can be null if no results are found.

Declared In

AdaptrAudioPlayer.h

– requestTracksForStation:pageNo:resultsPerPage:withCallback:

Get track list for a station (named a playlist in client side portal) so that the music can be played on demand

- (void)requestTracksForStation:(NSString *_Nonnull)stationId pageNo:(NSNumber *_Nonnull)page resultsPerPage:(NSNumber *_Nullable)resultsPerPage withCallback:(void ( ^ _Nonnull ) ( NSArray<Audiofile*> *_Nullable ))onResult

Parameters

stationId

An id of the station

page

results page starts from 0

resultsPerPage

No of results per page, must be higher then zero default is 20

onResult

the block that will be called when results are available. The parameter can be null if no results are found.

Declared In

AdaptrAudioPlayer.h

– loadStation:withCrossfade:

Load a station in player for playing music sequentially.

- (void)loadStation:(Station *_Nonnull)station withCrossfade:(BOOL)withCrossfade

Parameters

station

Station to load

Declared In

AdaptrAudioPlayer.h

– loadAudioItems:startIndexAt:withCrossfade:loopOptions:

Load a list of Audioitems in the player.

- (void)loadAudioItems:(NSArray<Audiofile*> *_Nonnull)audioItems startIndexAt:(NSUInteger)index withCrossfade:(BOOL)withCrossfade loopOptions:(LoopOptions)options

Parameters

audioItems

Audiofile items that are obtained from either requestTracksForStation or search or a PlayList etc.

index

index to start playing the songs at.

Declared In

AdaptrAudioPlayer.h

– setLoopOptions:

Change the looping behaviour of the current playlist.

- (void)setLoopOptions:(LoopOptions)options

Declared In

AdaptrAudioPlayer.h

– getPlayQueueEditor

Get the editor for the current play queue

- (id<Editor> _Nonnull)getPlayQueueEditor

Declared In

AdaptrAudioPlayer.h

– viewCurrentPlayQueue

View current Play queue

- (NSArray<Audiofile*> *_Nonnull)viewCurrentPlayQueue

Declared In

AdaptrAudioPlayer.h

– getSavedPlaylists:

Get playlists saved for this user from the server.

- (void)getSavedPlaylists:(void ( ^ _Nonnull ) ( NSArray<PlayList*> *_Nullable ))onResult

Parameters

onResult

Completion handler for completed request.

Declared In

AdaptrAudioPlayer.h

– getTracksForPlaylist:withBlock:

When you need to get the audioTracks for Playlist call this method. Only works on methods where editor.save has been called.

- (void)getTracksForPlaylist:(PlayList *_Nonnull)playlist withBlock:(void ( ^ _Nonnull ) ( PlayList *_Nonnull ))onResult

Parameters

playlist

For which audio files are to be retrieved.

onResult

Completion handler will return nil if nothing found or an error has occurred while trying to fetch tracks

Declared In

AdaptrAudioPlayer.h

– deletePlaylist:

Delete a playlist previously saved by the user

- (void)deletePlaylist:(PlayList *_Nonnull)playlist

Parameters

playlist

Playlist to be deleted.

Declared In

AdaptrAudioPlayer.h

– getUserFavoritesWithPageNo:resultsPerPage:completionBlock:

Get a list of users Favorites

- (void)getUserFavoritesWithPageNo:(NSNumber *_Nullable)page resultsPerPage:(NSNumber *_Nullable)resultsPerPage completionBlock:(void ( ^ _Nonnull ) ( NSArray<Audiofile*> *_Nonnull ))onResult

Parameters

page

Page no of results, starts with 0

resultsPerPage

No of results per page, cannot be 0

onResult

The completion handler, will return nil of nothing found or an error has occurred while trying to fetch tracks

Declared In

AdaptrAudioPlayer.h

– favoriteItem:

Favorite an audioItem

- (void)favoriteItem:(Audiofile *_Nonnull)audioItem

Parameters

audioItem

Item to favorite

Declared In

AdaptrAudioPlayer.h

– unFavoriteItem:

UnFavorite a previously favorite Item

- (void)unFavoriteItem:(Audiofile *_Nonnull)audioItem

Parameters

audioItem

Item to unFavorite

Declared In

AdaptrAudioPlayer.h

+ setMockLocation:

Set a location to mock for testing location. Development purpose only. May stop working at any time, if too many requests are received with Mocked location.

+ (void)setMockLocation:(MockLocation)mockLocation

Parameters

mockLocation

US or EU(Outside US)

Declared In

AdaptrAudioPlayer.h