# Titanium.Media.MusicPlayer

> This object represents a music controller.

- Source: https://titaniumsdk.com/docs/sdk/13.1.1/Titanium.Media.MusicPlayer
- Titanium SDK version: 13.1.1
- Kind: proxy
- Platforms: iPhone, iPad, macOS
- Since: Titanium SDK 1.4.0
- Extends: Titanium.Proxy
- Inheritance: Titanium.Proxy

A `MusicPlayer` lets you manage and playback a queue of media [Item](https://titaniumsdk.com/docs/sdk/Titanium.Media.Item.md) objects.

To retrieve an instance of a MusicPlayer object, use either the
[Titanium.Media.appMusicPlayer](https://titaniumsdk.com/docs/sdk/Titanium.Media.md#appMusicPlayer) or the [Titanium.Media.systemMusicPlayer](https://titaniumsdk.com/docs/sdk/Titanium.Media.md#systemMusicPlayer) property.

Use the [Media](https://titaniumsdk.com/docs/sdk/Titanium.Media.md) module's [openMusicLibrary](https://titaniumsdk.com/docs/sdk/Titanium.Media.md#openMusicLibrary) and
[queryMusicLibrary](https://titaniumsdk.com/docs/sdk/Titanium.Media.md#queryMusicLibrary) methods to access the media items in the
device's media library.

## Properties

### currentPlaybackTime

- Type: Number
- Platforms: iPhone, iPad, macOS

Current point in song playback, in seconds.

This property is read/write, so you can update the music player's current position
by setting this property.

### nowPlaying

- Type: Titanium.Media.Item
- Platforms: iPhone, iPad, macOS
- Permission: read-only

An `Item` object representing the currently playing media item.

### playbackState

- Type: Number
- Platforms: iPhone, iPad, macOS
- Permission: read-only

Playback state.

Accepts: `Titanium.Media.MUSIC_PLAYER_STATE_INTERRUPTED`, `Titanium.Media.MUSIC_PLAYER_STATE_PAUSED`, `Titanium.Media.MUSIC_PLAYER_STATE_PLAYING`, `Titanium.Media.MUSIC_PLAYER_STATE_SEEK_BACKWARD`, `Titanium.Media.MUSIC_PLAYER_STATE_SEEK_FORWARD`, `Titanium.Media.MUSIC_PLAYER_STATE_STOPPED`

### repeatMode

- Type: Number
- Platforms: iPhone, iPad, macOS

Repeat setting.

Accepts: `Titanium.Media.MUSIC_PLAYER_REPEAT_ALL`, `Titanium.Media.MUSIC_PLAYER_REPEAT_DEFAULT`, `Titanium.Media.MUSIC_PLAYER_REPEAT_NONE`, `Titanium.Media.MUSIC_PLAYER_REPEAT_ONE`

### shuffleMode

- Type: Number
- Platforms: iPhone, iPad, macOS

Shuffle setting.

Accepts: `Titanium.Media.MUSIC_PLAYER_SHUFFLE_ALBUMS`, `Titanium.Media.MUSIC_PLAYER_SHUFFLE_DEFAULT`, `Titanium.Media.MUSIC_PLAYER_SHUFFLE_NONE`, `Titanium.Media.MUSIC_PLAYER_SHUFFLE_SONGS`

## Methods

### pause

- Platforms: iPhone, iPad, macOS

Pauses playback of the current media item.

### play

- Platforms: iPhone, iPad, macOS

Begins playback of the current media item.

### seekBackward

- Platforms: iPhone, iPad, macOS

Begins seeking backward in the currently playing media.

Seeking speed increases as seeking continues.

Call [stopSeeking](https://titaniumsdk.com/docs/sdk/Titanium.Media.MusicPlayer.md#stopSeeking) to
return to normal play.

### seekForward

- Platforms: iPhone, iPad, macOS

Begins seeking forward in the currently playing media item.

While seeking forward audio plays faster than usual. The speed increases as
seeking continues.

Call [stopSeeking](https://titaniumsdk.com/docs/sdk/Titanium.Media.MusicPlayer.md#stopSeeking) to
return to normal play.

### setQueue

- Platforms: iPhone, iPad, macOS

Sets the media queue.

Sets the media queue to a single media item or a list of items. 

Starting in Titanium 6.1.0 you can also pass a String that identifies 
the Media item. This string has to be the [Titanium.Media.Item.persistentID](https://titaniumsdk.com/docs/sdk/Titanium.Media.Item.md#persistentID) 
property that identifies a media item uniquely.

Parameters:

- `queue` (Titanium.Media.Item | Array<Titanium.Media.Item> | String): One or more media items.

### skipToBeginning

- Platforms: iPhone, iPad, macOS

Skips to the beginning of the currently playing media item.

### skipToNext

- Platforms: iPhone, iPad, macOS

Skips to the next media item in the queue.

If there are no more media items in the queue, ends playback.

### skipToPrevious

- Platforms: iPhone, iPad, macOS

Skips to the previous media item in the queue.

If there are no previous media items in the queue, ends playback.

### stop

- Platforms: iPhone, iPad, macOS

Stops playback of the current media queue.

### stopSeeking

- Platforms: iPhone, iPad, macOS

Ends a seek operation and returns to the previous playback state.

See also: [seekForward](https://titaniumsdk.com/docs/sdk/Titanium.Media.MusicPlayer.md#seekForward) and
[seekBackward](https://titaniumsdk.com/docs/sdk/Titanium.Media.MusicPlayer.md#seekBackward).

## Events

### playingchange

- Platforms: iPhone, iPad, macOS
- Since: Titanium SDK 3.0.0

Fired when the currently playing media item changes.

See [nowPlaying](https://titaniumsdk.com/docs/sdk/Titanium.Media.MusicPlayer.md#nowPlaying) to identify the current
media item.

### statechange

- Platforms: iPhone, iPad, macOS
- Since: Titanium SDK 3.0.0

Fired when the music player's playback state changes.

See [playbackState](https://titaniumsdk.com/docs/sdk/Titanium.Media.MusicPlayer.md#playbackState) to identify the current
playback state.

## Inherited members

6 members are inherited. Each is documented on the type that declares it.

- [Titanium.Proxy](https://titaniumsdk.com/docs/sdk/13.1.1/Titanium.Proxy.md): `addEventListener`, `apiName`, `applyProperties`, `bubbleParent`, `fireEvent`, `removeEventListener`

---

- This corpus documents Titanium SDK 13.4.1. Anything here that does not name a version describes 13.4.1.
- Titanium is maintained by TiDev. The Appcelerator toolchain is retired: there is no `appc` CLI, no Appcelerator Studio and no hosted build service. The supported CLI is `titanium` on npm, invoked as `ti`.

