YAACC - UPNP Client and Server
Loading...
Searching...
No Matches
de.yaacc.player.LocalMediaSessionPlayer Class Reference

Local music player using ExoPlayer from PlayerService. More...

Inheritance diagram for de.yaacc.player.LocalMediaSessionPlayer:
Inheritance graph
Collaboration diagram for de.yaacc.player.LocalMediaSessionPlayer:
Collaboration graph

Public Member Functions

 LocalMediaSessionPlayer (UpnpClient upnpClient, String name, String shortName)
 
 LocalMediaSessionPlayer (UpnpClient upnpClient)
 
MediaSession getMedia3Session ()
 Get the Media3 MediaSession (not the legacy MediaSessionCompat).
 
void onServiceConnected (ComponentName className, IBinder binder)
 
int getIconResourceId ()
 
void setItems (PlayableItem... playableItems)
 Set a List of Items.
 
void addItems (List< PlayableItem > playableItems)
 Items added while ExoPlayer has the playlist (add to playlist during playback) are appended to it at once; before, they only reached ExoPlayer with the next start of an item, so it never played them.
 
String getNextItemTitle ()
 returns the title of the next current item
 
void next ()
 play the next item
 
void previous ()
 play the previous item
 
long getCurrentPosition ()
 returns the current position of the current item in millis
 
void seekTo (long millisecondsFromStart)
 
String getDuration ()
 returns the duration of the current item
 
String getElapsedTime ()
 returns the elapsed time of the current item
 
URI getAlbumArt ()
 
PendingIntent getNotificationIntent ()
 Returns the intent which is to be started by pushing the notification entry.
 
MediaSessionCompat getMediaSession ()
 Get the MediaSession for this player.
 
void onDestroy ()
 Kill the player.
 
- Public Member Functions inherited from de.yaacc.player.AbstractPlayer
 AbstractPlayer (UpnpClient upnpClient)
 
void onServiceDisconnected (ComponentName className)
 
Context getContext ()
 
Bitmap getIcon ()
 
void setIcon (Bitmap icon)
 
UpnpClient getUpnpClient ()
 
void startService ()
 
void onItemEnded ()
 The current item has ended by itself (a timer, or the renderer reported it): go on as the play mode says, which unlike next() repeats the item with repeat one.
 
void pause ()
 Pause the current item.
 
void play ()
 start playing the current item
 
void stop ()
 stops playing.
 
PlayMode getPlayMode ()
 The repeat and shuffle mode of this player.
 
void setPlayMode (PlayMode mode)
 Changes the repeat and shuffle mode of this player; the current item goes on playing.
 
int[] getPlayOrder ()
 
boolean isPlaylistPositionLocked (int position)
 
boolean moveInPlayOrder (int fromPosition, int toPosition)
 Moves an item in the playlist as the screen shows it: with shuffle the item moves in the play order (the list is not touched), otherwise in the list.
 
boolean removeItem (int itemIndex)
 Removes an item from the playlist (and from the play order).
 
boolean removeItem (int itemIndex, boolean alsoPlayed)
 Removes an item.
 
int getNextItemIndex ()
 
int getPreviousItemIndex ()
 
void clear ()
 Drops all Items.
 
boolean isPlaying ()
 
boolean isPaused ()
 
boolean isStopped ()
 
void setPlaying (boolean isPlaying)
 
List< PlayableItem > getItems ()
 
void insertItems (int index, List< PlayableItem > playableItems)
 Puts items into the middle of the playlist (the OpenHome renderer's queue): the item that plays keeps playing, the play order places the new items (behind the current one with shuffle), an engine that holds the list too is told.
 
void playItemAt (int index)
 Plays the item at the index (a playing, paused or stopped player starts it).
 
String getPositionString ()
 returns the current item position in the playlist
 
int getCurrentItemIndex ()
 
String getCurrentItemTitle ()
 returns the title of the current item
 
void setShareLease (QueueShareWindow.Lease lease)
 Makes this player hold the shares of a picked queue just in time: from now on loading an item binds the share of that item and of the next one and releases what the player left behind.
 
long getRemainingTime ()
 
void startTimer (final long duration)
 Start a timer for the next item change.
 
String getName ()
 Get the player name.
 
void setName (String name)
 Set the name of the player.
 
boolean isProcessingCommand ()
 
void setProcessingCommand (boolean isProcessingCommand)
 
void exit ()
 Exit the player.
 
int getId ()
 Returns the id of the Player.
 
void addPropertyChangeListener (PropertyChangeListener listener)
 add a property change listener
 
void removePropertyChangeListener (PropertyChangeListener listener)
 remove a property change listener
 
boolean getMute ()
 
void setMute (boolean mute)
 
int getVolume ()
 
void setVolume (int volume)
 
String getDeviceId ()
 
String getShortName ()
 Get the player short name.
 
void setShortName (String name)
 Set the short name of the player.
 
boolean hasActionGetVolume ()
 
boolean hasActionGetMute ()
 
void fastForward (int i)
 fast forward seconds
 
void fastRewind (int i)
 fast rewind seconds
 
- Public Member Functions inherited from de.yaacc.player.Player

Protected Member Functions

void startItem (PlayableItem playableItem, Object loadedItem, int index)
 
Object loadItem (PlayableItem playableItem)
 
void doPostLoadItem (PlayableItem playableItem)
 
void onItemsInserted (int index, List< PlayableItem > inserted)
 Items put into the middle of the list reach ExoPlayer at their place; the item that plays keeps playing.
 
void onPlayModeChanged (PlayMode oldMode, PlayMode newMode)
 The engine of a player applies the new play mode here (the order of the items is already adapted: see getPlayOrder()).
 
void onItemMoved (int fromIndex, int toIndex)
 The list order changed: the item at fromIndex moved to toIndex (shuffle is off).
 
void onItemRemoved (int index)
 The item at index was removed from the list and the play order.
 
void onPlayOrderMoved ()
 The play order changed by a move (shuffle is on, the list is unchanged); read it with getPlayOrder().
 
void stopItem (PlayableItem playableItem)
 
void doPause ()
 
void doResume ()
 
int getNotificationId ()
 Returns the notification id of the player.
 
void showNotificationInternal ()
 
- Protected Member Functions inherited from de.yaacc.player.AbstractPlayer
void configureMediaSession (MediaSessionCompat mediaSession)
 Override this to configure MediaSession (e.g., set volume provider for remote playback).
 
boolean isShufflePlay ()
 is shuffle play enabled.
 
PlayMode readDefaultPlayMode ()
 The mode a new player starts with: the two settings "replay playlist" and "shuffle music".
 
void resetPlayOrder (int firstIndex)
 Creates the play order of the playlist again with the given item first (with shuffle a new random order, otherwise the list order).
 
void cancelTimer ()
 
void setPaused (boolean paused)
 
final void adoptExternalPause ()
 Another controller than this app paused the playback (the media notification, the lock screen, a headset or the loss of the audio focus): the engine is paused already, only what the app knows about its player and shows is brought up to date.
 
final void adoptExternalResume ()
 The playback that was paused goes on without a command of this app (see adoptExternalPause()).
 
void setCurrentIndex (int currentIndex)
 
final synchronized void adoptDeviceState (List< PlayableItem > deviceItems, int index, boolean nowPlaying, boolean nowPaused)
 For a player whose playlist and playback live on a device (OpenHome): takes over what the device reports.
 
QueueShareWindow.Lease getShareLease ()
 The lease of the shares of a picked queue, null for every other player.
 
Object loadItem (int toLoadIndex)
 
void loadItem (int previousIndex, int nextIndex)
 
long getSilenceDuration ()
 returns the duration between two items
 
void updateTimer ()
 
long parseTimeStringToMillis (String timeString)
 
void updatePlaybackStateInternal (int state)
 
void updateMetadataInternal ()
 
void firePropertyChange (String property, Object oldValue, Object newValue)
 
void executeCommand (TimerTask command, Date executionTime)
 

Additional Inherited Members

- Public Attributes inherited from de.yaacc.player.Player
String PROPERTY_PLAY_MODE = "playMode"
 Name of the property change fired (see addPropertyChangeListener) when the play mode changed; old and new value are PlayModes.
 
String PROPERTY_PLAYLIST = "playlist"
 Name of the property change fired when the playlist changed: items set, added, removed or moved, or the play order created again (a stop, a start).
 
String PROPERTY_STOPPED = "stopped"
 Name of the property change fired when the player has stopped: stop() is done, whoever called it - the end of the playlist without repeat, the stop button of the app, the media renderer's Stop.
 
- Static Public Attributes inherited from de.yaacc.player.AbstractPlayer
static final String PLAYER_ID = "PlayerId"
 
static final String PROPERTY_ITEM = "item"
 
static final String PROPERTY_PAUSED = "paused"
 Fired when the player is paused or resumed (the "playing" property is fired when it starts or stops playing).
 
- Package Functions inherited from de.yaacc.player.AbstractPlayer
- Static Package Attributes inherited from de.yaacc.player.AbstractPlayer

Detailed Description

Local music player using ExoPlayer from PlayerService.

Member Function Documentation

◆ addItems()

void de.yaacc.player.LocalMediaSessionPlayer.addItems ( List< PlayableItem > playableItems)

Items added while ExoPlayer has the playlist (add to playlist during playback) are appended to it at once; before, they only reached ExoPlayer with the next start of an item, so it never played them.

With shuffle our play order, which places the new items at random behind the current one, is installed again.

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ doPause()

void de.yaacc.player.LocalMediaSessionPlayer.doPause ( )
protected

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ doPostLoadItem()

void de.yaacc.player.LocalMediaSessionPlayer.doPostLoadItem ( PlayableItem playableItem)
protected

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ doResume()

void de.yaacc.player.LocalMediaSessionPlayer.doResume ( )
protected

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ getAlbumArt()

URI de.yaacc.player.LocalMediaSessionPlayer.getAlbumArt ( )

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ getCurrentPosition()

long de.yaacc.player.LocalMediaSessionPlayer.getCurrentPosition ( )

returns the current position of the current item in millis

Returns
the position

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ getDuration()

String de.yaacc.player.LocalMediaSessionPlayer.getDuration ( )

returns the duration of the current item

Returns
the duration

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ getElapsedTime()

String de.yaacc.player.LocalMediaSessionPlayer.getElapsedTime ( )

returns the elapsed time of the current item

Returns
the elapsed time

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ getIconResourceId()

int de.yaacc.player.LocalMediaSessionPlayer.getIconResourceId ( )

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ getMedia3Session()

MediaSession de.yaacc.player.LocalMediaSessionPlayer.getMedia3Session ( )

Get the Media3 MediaSession (not the legacy MediaSessionCompat).

This is registered with PlayerService for system integration.

◆ getMediaSession()

MediaSessionCompat de.yaacc.player.LocalMediaSessionPlayer.getMediaSession ( )

Get the MediaSession for this player.

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ getNextItemTitle()

String de.yaacc.player.LocalMediaSessionPlayer.getNextItemTitle ( )

returns the title of the next current item

Returns
the title

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ getNotificationId()

int de.yaacc.player.LocalMediaSessionPlayer.getNotificationId ( )
protected

Returns the notification id of the player.

Returns
the notification id

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ getNotificationIntent()

PendingIntent de.yaacc.player.LocalMediaSessionPlayer.getNotificationIntent ( )

Returns the intent which is to be started by pushing the notification entry.

Returns
the peneding intent

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ loadItem()

Object de.yaacc.player.LocalMediaSessionPlayer.loadItem ( PlayableItem playableItem)
protected

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ next()

void de.yaacc.player.LocalMediaSessionPlayer.next ( )

play the next item

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ onDestroy()

void de.yaacc.player.LocalMediaSessionPlayer.onDestroy ( )

Kill the player.

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ onItemMoved()

void de.yaacc.player.LocalMediaSessionPlayer.onItemMoved ( int fromIndex,
int toIndex )
protected

The list order changed: the item at fromIndex moved to toIndex (shuffle is off).

For an engine that holds the list too. Called on the caller's thread, before the property change.

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ onItemRemoved()

void de.yaacc.player.LocalMediaSessionPlayer.onItemRemoved ( int index)
protected

The item at index was removed from the list and the play order.

Called on the caller's thread, before the property change.

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ onItemsInserted()

void de.yaacc.player.LocalMediaSessionPlayer.onItemsInserted ( int index,
List< PlayableItem > inserted )
protected

Items put into the middle of the list reach ExoPlayer at their place; the item that plays keeps playing.

With shuffle our play order, which places the new items behind the current one, is installed again.

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ onPlayModeChanged()

void de.yaacc.player.LocalMediaSessionPlayer.onPlayModeChanged ( PlayMode oldMode,
PlayMode newMode )
protected

The engine of a player applies the new play mode here (the order of the items is already adapted: see getPlayOrder()).

Called before the property change is fired, possibly on any thread.

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ onPlayOrderMoved()

void de.yaacc.player.LocalMediaSessionPlayer.onPlayOrderMoved ( )
protected

The play order changed by a move (shuffle is on, the list is unchanged); read it with getPlayOrder().

Called on the caller's thread, before the property change.

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ onServiceConnected()

void de.yaacc.player.LocalMediaSessionPlayer.onServiceConnected ( ComponentName className,
IBinder binder )

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ previous()

void de.yaacc.player.LocalMediaSessionPlayer.previous ( )

play the previous item

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ seekTo()

void de.yaacc.player.LocalMediaSessionPlayer.seekTo ( long millisecondsFromStart)

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ setItems()

void de.yaacc.player.LocalMediaSessionPlayer.setItems ( PlayableItem... items)

Set a List of Items.

Parameters
itemsthe items to be played

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ showNotificationInternal()

void de.yaacc.player.LocalMediaSessionPlayer.showNotificationInternal ( )
protected

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ startItem()

void de.yaacc.player.LocalMediaSessionPlayer.startItem ( PlayableItem playableItem,
Object loadedItem,
int index )
protected

Reimplemented from de.yaacc.player.AbstractPlayer.

◆ stopItem()

void de.yaacc.player.LocalMediaSessionPlayer.stopItem ( PlayableItem playableItem)
protected

Reimplemented from de.yaacc.player.AbstractPlayer.


The documentation for this class was generated from the following file: