Include the rhapsody.js source in your application after the dependent jQuery library. Once the source is loaded, the library must be initialized with an application key.
Rhapsody.init({
consumerKey: 'foo'
});
Attribute | Default | Description |
---|---|---|
consumerKey | undefined | The application key |
version | 'v1' | API endpoint version |
catalog | 'EN' | The desired catalog locale |
player | 'player-frame' | The html element id where the player iframe will be embedded |
The Member object exposes a methods for user sessions. Use the Rhapsody.member.set(credentials)
to manage sessions. After setting the member session information the player will automatically be reauthenticated.
Rhapsody.member.set({
accessToken: 'oauth access token',
refreshToken: 'oauth refresh token'
});
The Rhapsody object exposes a top-level player
object that provides the necessary methods to manage playback.
Rhapsody.player.play('Tra.5156528');
Rhapsody.player.pause();
Rhapsody.player.next();
Rhapsody.player.previous();
Rhapsody.player.queue('Tra.5156528');
Rhapsody.player.clearQueue();
Rhapsody.player.toggleShuffle();
Rhapsody.player.toggleRepeat();
For example, to seek to 0:10 in a given track:
Rhapsody.player.seek();
The Rhapsody object exposes some API convenience methods. There are methods for HTTP GET, POST, PUT, and DELETE. The first parameter determines if a secure request is made.
Rhapsody.api.get(false, '/tracks/top', function(tracks) {
Rhapsody.player.play(tracks[0].id);
});
There are a number of interesting playback-related events you can listen for:
- playevent: Starts, pauses, completes, etc.
- playtimer: Current time, total time, waveform data
- error: Bad things
- metadata
- queueloaded
- queuechanged
- authenticated
- ready
- playsessionexpired
- playstopped
Listening for player events is simple:
Rhapsody.player.on('playevent', function(e) {
console.log(e.data);
});
Rhapsody.player.on('playtimer', function(e) {
console.log(e.data);
});
Rhapsody.player.on('error', function(e) {
console.log(e.data);
});