new Mediaplayer(playerName) → {MediaPlayer}
The car.mediaplayer MediaPlayer instance contstructor function. Opens the specified player and returns an
instance of the MediaPlayer object, used to perform actions on the media player and receive update events
through watchers.
Parameters:
Name | Type | Description |
---|---|---|
playerName |
String | The player name to open. If the player does not exist it will automatically be created. |
- Source:
Returns:
The car.mediaplayer.MediaPlayer instance.
- Type
- MediaPlayer
Examples
// Instantiate a media player object, specifying the player name
var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName');
REST
Request:
http://<car-ip>/car.mediaplayer/open?playerName=playerName
Success Response:
{
"code": 1,
"data": true
}
Error Response:
{
code: -1,
msg: "An error has occurred"
}
Methods
-
<static> browse(mediaSourceId, success, error, mediaNodeId, limit, offset)
-
Browse a media source for media
Parameters:
Name Type Argument Default Description mediaSourceId
Number The ID of the media source. be retrieved. success
Function The success callback handler. error
Function <optional>
The error callback handler. mediaNodeId
String <optional>
null The ID of the media node to browse. If omitted or null, the root node will limit
Number <optional>
-1 The maximum number of records to retrieve. If omitted or negative, all records will be retrieved. offset
Number <optional>
0 The offset at which to start retrieving records. If omitted or negative, offset will be 0. - Source:
Examples
// Define your callback function(s) function successCallback(mediaNodes) { // Iterate through all of the node results for (var i=0; i<mediaNodes.length; i++) { console.log("media node id = " + mediaNodes[i].id + "\n" + "media node name = " + mediaNodes[i].name + "\n" + "media node url = " + mediaNodes[i].url + "\n" + "media node type = " + mediaNodes[i].type + "\n" + "media node count = " + mediaNodes[i].count + "\n"); } } function errorCallback(error) { console.log(error.code, error.msg); } // Instantiate a media player object, specifying the player name var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName'); // Browse the media source from its root mediaPlayer.browse(0, successCallback, errorCallback, null, 10, 0);
REST Request: http://<car-ip>/car.mediaplayer/browse?mediaSourceId=0&limit=10&offset=0 Success Response: { code: 1, data: [ { "id": "/artists-2", "name": "Artists", "url": null, "type": 1, "count": -1 }, { "id": "/albums-5", "name": "Albums", "url": null, "type": 1, "count": -1 }, { "id": "/genres-8", "name": "Genres", "url": null, "type": 1, "count": -1 }, { "id": "/songs-7", "name": "Songs", "url": null, "type": 1, "count": -1 }, { "id": "/videos-10", "name": "Videos", "url": null, "type": 1, "count": -1 } ] } Error Response: { code: -1, msg: "An error has occurred" }
-
<static> cancelWatch(watchId)
-
Removes a watch callback
Parameters:
Name Type Description watchId
Number The watch ID. - Source:
Example
// Instantiate a media player object, specifying the name of the player of which to watch var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName'); // Add a watch var watchId = mediaPlayer.watchMediaSource(function() {}); // Cancel the watch mediaPlayer.cancelWatch(watchId);
-
<static> createTrackSession(mediaSourceId, success, error, mediaNodeId, index, limit, offset)
-
Creates a new track session
Parameters:
Name Type Argument Default Description mediaSourceId
Number The ID of the media source. success
Function The success callback handler. error
Function <optional>
The error callback handler. mediaNodeId
String <optional>
<nullable>
null The media node ID on which to base the track session. index
Number <optional>
0 The index of the item within the track session to set as current after creation. limit
Number <optional>
-1 The maximum number of media nodes to add to the track session. A limit of -1 indicates no limit. offset
Number <optional>
0 The offset within the specified media node at which to start building the track session. - Source:
Examples
// Define your callback function(s) function successCallback(result) { console.log("track session id = " + result.trackSessionId + "\n"); // Play the new track session mediaPlayer.play(); } function errorCallback(error) { console.log(error.code, error.msg); } // Instantiate a media player object, specifying the player name var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName'); // Create a track session from a folder node ID, setting the third track as first to play mediaPlayer.createTrackSession(0, successCallback, errorCallback, '/songs-7', 2);
REST Request: http://<car-ip>/car.mediaplayer/createTrackSession?mediaSourceId=0&mediaNodeId=/songs-7&index=2 Success Response: { "code": 1, "data": { "trackSessionId": 10 } } Error Response: { code: -1, msg: "An error has occurred" }
-
<static> destroyTrackSession(trackSessionId)
-
Destroys an existing track session.
Parameters:
Name Type Description trackSessionId
Number The track session ID. - Source:
Examples
// Instantiate a media player object, specifying the player name var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName'); // Destroy the track session by its ID mediaPlayer.destroyTrackSession(10);
REST Request: http://<car-ip>/car.mediaplayer/destroyTrackSession?trackSessionId=10 Success Response: { "code": 1 } Error Response: { code: -1, msg: "An error has occurred" }
-
<static> getCurrentTrack(success, error)
-
Retrieves the currently playing track information
Parameters:
Name Type Argument Description success
Function The success callback handler. error
Function <optional>
The error callback handler. - Source:
Examples
function successCallback(trackInfo) { console.log("track info media source ID = " + trackInfo.mediaSourceId + "\n" + "track info track session index = " + trackInfo.index); console.group("track info media node"); console.log("id = " + trackInfo.mediaNode.id + "\n" + "name = " + trackInfo.mediaNode.name + "\n" + "url = " + trackInfo.mediaNode.url + "\n" + "type = " + trackInfo.mediaNode.type + "\n" + "count = " + trackInfo.mediaNode.count + "\n"); console.groupEnd(); console.group("track info metadata"); console.log("title = " + trackInfo.metadata.title + "\n" + "duration = " + trackInfo.metadata.duration + "\n" + "artwork = " + trackInfo.metadata.artwork + "\n" + "artist = " + trackInfo.metadata.artist + "\n" + "album = " + trackInfo.metadata.album + "\n" + "genre = " + trackInfo.metadata.genre + "\n" + "disc = " + trackInfo.metadata.disc + "\n" + "track = " + trackInfo.metadata.track + "\n" + "width = " + trackInfo.metadata.width + "\n" + "height = " + trackInfo.metadata.height); console.groupEnd(); } function errorCallback(error) { console.log(error.code, error.msg); } // Instantiate a media player object, specifying the player name var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName'); // Get the current track information mediaPlayer.getCurrentTrack(successCallback, errorCallback);
REST Request: http://<car-ip>/car.mediaplayer/getCurrentTrack Success Response: { "code": 1, "data": { "index": 0, "mediaSourceId": 0, "mediaNode": { "id": "/songs/1", "name": "Bo Bo's Groove", "url": "file:///accounts/1000/shared/music/Bo Bo's Groove.mp3", "type": 2, "count": -1 }, "metadata": { "title": "Bo Bo's Groove", "duration": 318411, "artwork": "file:///apps/mediasources/imagecache//mme/2/original", "artist": "tomprincipato", "album": "Raising The Roof!", "genre": "rock", "disc": 0, "track": 0, "width": -1, "height": -1 } } } Error Response: { code: -1, msg: "An error has occurred" }
-
<static> getMediaSources(success, error)
-
Return the list of available media sources connected to the device
Parameters:
Name Type Argument Description success
Function The success callback handler. error
Function <optional>
The error callback handler. - Source:
Examples
// Define your callback function(s) function successCallback(mediaSources) { // Iterate through all of the media sources for (var i=0; i<mediaSources.length; i++) { console.log("media source id = " + mediaSources[i].id + "\n" + "media source uid = " + mediaSources[i].uid + "\n" + "media source name = " + mediaSources[i].name + "\n" + "media source type = " + mediaSources[i].type + "\n" + "media source ready = " + mediaSources[i].ready); console.group("media source capabilities"); console.log("play = " + mediaSources[i].capabilities.play + "\n" + "pause = " + mediaSources[i].capabilities.pause + "\n" + "stop = " + mediaSources[i].capabilities.stop + "\n" + "next = " + mediaSources[i].capabilities.next + "\n" + "previous = " + mediaSources[i].capabilities.previous + "\n" + "seek = " + mediaSources[i].capabilities.seek + "\n" + "shuffle = " + mediaSources[i].capabilities.shuffle + "\n" + "repeatOne = " + mediaSources[i].capabilities.repeatOne + "\n" + "repeatAll = " + mediaSources[i].capabilities.repeatAll + "\n" + "metadata = " + mediaSources[i].capabilities.metadata + "\n" + "search = " + mediaSources[i].capabilities.search + "\n" + "playbackRate = " + mediaSources[i].capabilities.playbackRate); console.groupEnd(); } } function errorCallback(error) { console.log(error.code, error.msg); } //call the method car.mediaplayer.getMediaSources(successCallback, errorCallback);
REST Request: http://<car-ip>/car.mediaplayer/getMediaSources Success Response: { code: 1, data: [ { id: 0, uid: "dbmme", name: "Juke Box", type: 1, capabilities: { play: true, pause: true, stop: true, next: true, previous: true, seek: true, shuffle: true, repeatOne: true, repeatAll: true, metadata: true, search: true, playbackRate: true } }, { id: 1, uid: "0", name: "Bluetooth Phone", type: 4096, capabilities: { play: true, pause: true, stop: true, next: false, previous: false, seek: false, shuffle: false, repeatOne: false, repeatAll: false, metadata: true, search: false, playbackRate: false } } ] } Error Response: { code: -1, msg: "An error has occurred" }
-
<static> getMetadata(mediaSourceId, mediaNodeId, success, error)
-
Retrieves metadata for the specified media
Parameters:
Name Type Argument Description mediaSourceId
Number The ID of the node's media source. mediaNodeId
String The media node ID of which to retrieve metadata. success
Function The success callback handler. error
Function <optional>
The error callback handler. - Source:
Examples
function successCallback(metadata) { console.log("metadata title = " + metadata.title + "\n" + "metadata duration = " + metadata.duration + "\n" + "metadata artwork = " + metadata.artwork + "\n" + "metadata artist = " + metadata.artist + "\n" + "metadata album = " + metadata.album + "\n" + "metadata genre = " + metadata.genre + "\n" + "metadata disc = " + metadata.disc + "\n" + "metadata track = " + metadata.track + "\n" + "metadata width = " + metadata.width + "\n" + "metadata height = " + metadata.height); } function errorCallback(error) { console.log(error.code, error.msg); } // Instantiate a media player object, specifying the player name var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName'); // Get metadata for the specified node mediaPlayer.getMetadata(0, '/songs/1', successCallback, errorCallback);
REST Request: http://<car-ip>/car.mediaplayer/getMetadata?mediaSourceId=0&mediaNodeId=/songs/1 Success Response: { "code": 1, "data": { "title": "Bo Bo's Groove", "duration": 318411, "artwork": "file:///apps/mediasources/imagecache//mme/2/original", "artist": "tomprincipato", "album": "Raising The Roof!", "genre": "rock", "disc": 0, "track": 0, "width": -1, "height": -1 } } Error Response: { code: -1, msg: "An error has occurred" }
-
<static> getPlayerState(success, error)
-
Returns the state of the media player
Parameters:
Name Type Argument Description success
Function The success callback handler. error
Function <optional>
The error callback handler. - Source:
Examples
function successCallback(playerState) { console.log("player state shuffle mode = " + playerState.shuffleMode + "\n" + "player state repeat mode = " + playerState.repeatMode + "\n" + "player state player status = " + playerState.playerStatus + "\n" + "player state playback rate = " + playerState.playbackRate); } function errorCallback(error) { console.log(error.code, error.msg); } // Instantiate a media player object, specifying the player name var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName'); // Get the current player state mediaPlayer.getPlayerState(successCallback, errorCallback);
REST Request: http://<car-ip>/car.mediaplayer/getPlayerState Success Response: { "code": 1, "data": { "shuffleMode": 0, "repeatMode": 0, "playerStatus": 2, "playbackRate": 1 } } Error Response: { code: -1, msg: "An error has occurred" }
-
<static> getTrackSessionInfo(success, error)
-
Retrieves the current track session information.
Parameters:
Name Type Argument Description success
Function The success callback handler. error
Function <optional>
The error callback handler. - Source:
Examples
// Define your callback function(s) function successCallback(result) { console.log("track session id = " + result.trackSessionId + "\n" + "track session length = " + result.length); } function errorCallback(error) { console.log(error.code, error.msg); } // Instantiate a media player object, specifying the player name var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName'); // Get the current track session info mediaPlayer.getTrackSessionInfo(successCallback, errorCallback);
REST Request: http://<car-ip>/car.mediaplayer/getTrackSessionInfo Success Response: { "code": 1, "data": { "trackSessionId": 10, "length": 17 } } Error Response: { code: -1, msg: "An error has occurred" }
-
<static> getTrackSessionItems(success, error, limit, offset)
-
Retrieves media from the current track session
Parameters:
Name Type Argument Default Description success
Function The success callback handler. error
Function <optional>
The error callback handler. limit
Number <optional>
-1 The maximum number of records to retrieve. If omitted or negative, all records will be retrieved. offset
Number <optional>
0 The offset at which to start retrieving records. If omitted or negative, offset will be 0. - Source:
Examples
function successCallback(mediaNodes) { // Iterate through all of the node results for (var i=0; i<mediaNodes.length; i++) { console.log("media node id = " + mediaNodes[i].id + "\n" + "media node name = " + mediaNodes[i].name + "\n" + "media node url = " + mediaNodes[i].url + "\n" + "media node type = " + mediaNodes[i].type + "\n" + "media node count = " + mediaNodes[i].count + "\n"); } } function errorCallback(error) { console.log(error.code, error.msg); } // Instantiate a media player object, specifying the player name var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName'); // Get the third through fifth track session items mediaPlayer.getTrackSessionItems(successCallback, errorCallback, 3, 2);
REST Request: http://<car-ip>/car.mediaplayer/getTrackSessionItems?limit=3&offset=2 Success Response: { "code": 1, "data": [ { "id": "/songs/3", "name": "Funktional Love ft. Ruchama", "url": "file:///accounts/1000/shared/music/Funktional Love ft. Ruchama.mp3", "type": 2, "count": -1 }, { "id": "/songs/4", "name": "Hero", "url": "file:///accounts/1000/shared/music/Hero.mp3", "type": 2, "count": -1 }, { "id": "/songs/6", "name": "In Her Smile", "url": "file:///accounts/1000/shared/music/In Her Smile.mp3", "type": 2, "count": -1 } ] } Error Response: { code: -1, msg: "An error has occurred" }
-
<static> next()
-
Skip to the next track in the active track session
- Source:
Examples
// Instantiate a media player object, specifying the player name var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName'); // Skip to the next track mediaPlayer.next();
REST Request: http://<car-ip>/car.mediaplayer/next Success Response: { "code": 1 } Error Response: { code: -1, msg: "An error has occurred" }
-
<static> pause()
-
Pause playback
- Source:
Examples
// Instantiate a media player object, specifying the player name var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName'); // Pause mediaPlayer.pause();
REST Request: http://<car-ip>/car.mediaplayer/pause Success Response: { "code": 1 } Error Response: { code: -1, msg: "An error has occurred" }
-
<static> play()
-
Start or resume playback of the current track session
- Source:
Examples
// Instantiate a media player object, specifying the player name var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName'); // Play mediaPlayer.play();
REST Request: http://<car-ip>/car.mediaplayer/play Success Response: { "code": 1 } Error Response: { code: -1, msg: "An error has occurred" }
-
<static> previous()
-
Skip to the previous track in the active track session
- Source:
Examples
// Instantiate a media player object, specifying the player name var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName'); // Skip to the previous track mediaPlayer.previous();
REST Request: http://<car-ip>/car.mediaplayer/previous Success Response: { "code": 1 } Error Response: { code: -1, msg: "An error has occurred" }
-
<static> repeat(repeatMode)
-
Set the repeat mode for the active track session
Parameters:
Name Type Description repeatMode
MediaPlayer.RepeatMode The repeat mode as per the MediaPlayer.RepeatMode enumeration. - Source:
Examples
// Instantiate a media player object, specifying the player name var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName'); // Turn repeat one mode on mediaPlayer.repeat(car.mediaplayer.RepeatMode.REPEAT_ONE);
REST Request: http://<car-ip>/car.mediaplayer/repeat?repeatMode=2 Success Response: { "code": 1 } Error Response: { code: -1, msg: "An error has occurred" }
-
<static> search(mediaSourceId, searchTerm, success, error, mediaNodeId, limit, offset)
-
Search for media in a specific media source.
Parameters:
Name Type Argument Default Description mediaSourceId
Number The ID of the media source. searchTerm
String The term to search for. success
Function The success callback handler. error
Function <optional>
The error callback handler. mediaNodeId
String <optional>
null The ID of the media node from which to search. limit
Number <optional>
-1 The maximum number of records to retrieve. If omitted or negative, all records will be retrieved. offset
Number <optional>
0 The offset at which to start retrieving records. If omitted or negative, offset will be 0. - Source:
Examples
// Define your callback function(s) function successCallback(mediaNodes) { // Iterate through all of the node results for (var i=0; i<mediaNodes.length; i++) { console.log("media node id = " + mediaNodes[i].id + "\n" + "media node name = " + mediaNodes[i].name + "\n" + "media node url = " + mediaNodes[i].url + "\n" + "media node type = " + mediaNodes[i].type + "\n" + "media node count = " + mediaNodes[i].count + "\n"); } } function errorCallback(error) { console.log(error.code, error.msg); } // Instantiate a media player object, specifying the player name var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName'); // Search the media source from its root mediaPlayer.search(0, 'ong', successCallback, errorCallback, null, 10, 0); *
REST Request: http://<car-ip>/car.mediaplayer/search?mediaSourceId=0&searchTerm=ong&limit=10&offset=0 Success Response: { "code": 1, "data": [ { "id": "/artists/11-3", "name": "AllisonGray", "url": null, "type": 1, "count": 1 }, { "id": "/songs/15", "name": "Sarasong", "url": "file:///accounts/1000/shared/music/Sarasong.mp3", "type": 2, "count": -1 } ] } Error Response: { code: -1, msg: "An error has occurred" }
-
<static> seek(position)
-
Seek to a specific position in the current track
Parameters:
Name Type Description position
Number The track position, in ms. - Source:
Examples
// Instantiate a media player object, specifying the player name var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName'); // Seek mediaPlayer.seek(20000);
REST Request: http://<car-ip>/car.mediaplayer/seek?position=20000 Success Response: { "code": 1 } Error Response: { code: -1, msg: "An error has occurred" }
-
<static> setPlaybackRate(playbackRate)
-
Set the playback rate of the media player
Parameters:
Name Type Description playbackRate
Number The playback rate. A rate of 1.0 is regular play speed. Negative numbers result in reverse playback. - Source:
Examples
// Instantiate a media player object, specifying the player name var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName'); // Fast forward 1.5x mediaPlayer.setPlaybackRate(1.5);
REST Request: http://<car-ip>/car.mediaplayer/setPlaybackRate?playbackRate=1.5 Success Response: { "code": 1 } Error Response: { code: -1, msg: "An error has occurred" }
-
<static> shuffle(shuffleMode)
-
Set the shuffle mode for the active track session.
Parameters:
Name Type Description shuffleMode
MediaPlayer.ShuffleMode The shuffle mode as per the MediaPlayer.ShuffleMode enumeration. - Source:
Examples
// Instantiate a media player object, specifying the player name var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName'); // Turn shuffle mode on mediaPlayer.shuffle(car.mediaplayer.ShuffleMode.SHUFFLE_ON);
REST Request: http://<car-ip>/car.mediaplayer/shuffle?shuffleMode=1 Success Response: { "code": 1 } Error Response: { code: -1, msg: "An error has occurred" }
-
<static> watchMediaSource(callback) → {Number}
-
Watch for changes to media sources
Parameters:
Name Type Description callback
Function The function to be called when a change is detected. - Source:
Returns:
The watch ID.- Type
- Number
Example
// Define a callback function function myCallback(event) { } // Instantiate a media player object, specifying the name of the player of which to watch var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName'); // Add the watch var watchId = mediaPlayer.watchMediaSource(myCallback);
-
<static> watchPlayerState(callback) → {Number}
-
Watch for changes to the media player state
Parameters:
Name Type Description callback
Function The function to be called when a change is detected. - Source:
Returns:
The watch ID.- Type
- Number
Example
// Define a callback function function myCallback(event) { } // Instantiate a media player object, specifying the name of the player of which to watch var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName'); // Add the watch var watchId = mediaPlayer.watchPlayerState(myCallback);
-
<static> watchTrack(callback) → {Number}
-
Watch for changes to the current track
Parameters:
Name Type Description callback
Function The function to be called when a change is detected. - Source:
Returns:
The watch ID.- Type
- Number
Example
// Define a callback function function myCallback(event) { } // Instantiate a media player object, specifying the name of the player of which to watch var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName'); // Add the watch var watchId = mediaPlayer.watchTrack(myCallback);
-
<static> watchTrackPosition(callback) → {Number}
-
Watch for changes to the current track's position
Parameters:
Name Type Description callback
Function The function to be called when a change is detected. - Source:
Returns:
The watch ID.- Type
- Number
Example
// Define a callback function function myCallback(event) { } // Instantiate a media player object, specifying the name of the player of which to watch var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName'); // Add the watch var watchId = mediaPlayer.watchTrackPosition(myCallback);
-
<static> watchTrackSession(callback) → {Number}
-
Watch for changes to track sessions
Parameters:
Name Type Description callback
Function The function to be called when a change is detected. - Source:
Returns:
The watch ID.- Type
- Number
Example
// Define a callback function function myCallback(event) { } // Instantiate a media player object, specifying the name of the player of which to watch var mediaPlayer = new car.mediaplayer.MediaPlayer('playerName'); // Add the watch var watchId = mediaPlayer.watchTrackSession(myCallback);