QNX CAR Platform for Infotainment 2.1 -- JavaScript API (Cordova)

car.mediaplayer. Mediaplayer

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"
}
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);