-
- All Implemented Interfaces:
-
com.getstream.sdk.chat.utils.exomedia.core.api.AudioPlayerApi
public class NativeAudioPlayer implements AudioPlayerApi
A simple MediaPlayer implementation that extends the one provided by the system to add integration with the ListenerMux and to mitigate state errors.
NOTE: The
listenerMuxshouldn't be null when any method utilizing it is called, however there are some cases on Amazon devices where they incorrectly call these methods when setting up the MediaPlayer (when in IDLE state)
-
-
Field Summary
Fields Modifier and Type Field Description protected ListenerMuxlistenerMuxprotected floatvolumeLeftprotected floatvolumeRight
-
Constructor Summary
Constructors Constructor Description NativeAudioPlayer(Context context)
-
Method Summary
Modifier and Type Method Description voidsetDataSource(Uri uri)voidsetDataSource(Uri uri, MediaSource mediaSource)voidsetDrmCallback(MediaDrmCallback drmCallback)Sets the MediaDrmCallback to use when handling DRM for media. voidprepareAsync()Prepares the media specified with setDataSource or setDataSource in an asynchronous manner voidreset()voidsetVolume(float left, float right)voidseekTo(long milliseconds)booleanisPlaying()voidstart()voidpause()voidstopPlayback()booleanrestart()Prepares the media previously specified for playback. longgetDuration()longgetCurrentPosition()intgetBufferedPercent()WindowInfogetWindowInfo()voidrelease()Releases the resources associated with this media player intgetAudioSessionId()booleansetPlaybackSpeed(float speed)Sets the playback speed for this MediaPlayer. floatgetPlaybackSpeed()voidsetAudioStreamType(int streamType)Sets the stream_ic_audio stream type for this MediaPlayer. voidsetWakeMode(Context context, int mode)booleantrackSelectionAvailable()voidsetTrack(ExoMedia.RendererType trackType, int trackIndex)voidsetTrack(ExoMedia.RendererType type, int groupIndex, int trackIndex)intgetSelectedTrackIndex(ExoMedia.RendererType type, int groupIndex)Map<ExoMedia.RendererType, TrackGroupArray>getAvailableTracks()Retrieves a list of available tracks to select from. voidonMediaPrepared()voidsetRepeatMode(int repeatMode)floatgetVolumeLeft()floatgetVolumeRight()voidsetListenerMux(ListenerMux listenerMux)-
-
Constructor Detail
-
NativeAudioPlayer
NativeAudioPlayer(Context context)
-
-
Method Detail
-
setDataSource
void setDataSource(Uri uri)
-
setDataSource
void setDataSource(Uri uri, MediaSource mediaSource)
-
setDrmCallback
void setDrmCallback(MediaDrmCallback drmCallback)
Sets the MediaDrmCallback to use when handling DRM for media. This should be called before specifying the videos uri or path NOTE: DRM is only supported on API 18 +
- Parameters:
drmCallback- The callback to use when handling DRM media
-
prepareAsync
void prepareAsync()
Prepares the media specified with setDataSource or setDataSource in an asynchronous manner
-
reset
void reset()
-
setVolume
void setVolume(float left, float right)
-
seekTo
void seekTo(long milliseconds)
-
isPlaying
boolean isPlaying()
-
start
void start()
-
pause
void pause()
-
stopPlayback
void stopPlayback()
-
restart
boolean restart()
Prepares the media previously specified for playback. This should only be called after the playback has completed to restart playback from the beginning.
-
getDuration
long getDuration()
-
getCurrentPosition
long getCurrentPosition()
-
getBufferedPercent
int getBufferedPercent()
-
getWindowInfo
@Nullable() WindowInfo getWindowInfo()
-
release
void release()
Releases the resources associated with this media player
-
getAudioSessionId
int getAudioSessionId()
-
setPlaybackSpeed
boolean setPlaybackSpeed(float speed)
Sets the playback speed for this MediaPlayer.
- Parameters:
speed- The speed to play the media back at
-
getPlaybackSpeed
float getPlaybackSpeed()
-
setAudioStreamType
void setAudioStreamType(int streamType)
Sets the stream_ic_audio stream type for this MediaPlayer. See AudioManager for a list of stream types. Must call this method before prepare() or prepareAsync() in order for the target stream type to become effective thereafter.
- Parameters:
streamType- The stream_ic_audio stream type
-
setWakeMode
void setWakeMode(Context context, int mode)
-
trackSelectionAvailable
boolean trackSelectionAvailable()
-
setTrack
void setTrack(ExoMedia.RendererType trackType, int trackIndex)
-
setTrack
void setTrack(ExoMedia.RendererType type, int groupIndex, int trackIndex)
-
getSelectedTrackIndex
int getSelectedTrackIndex(ExoMedia.RendererType type, int groupIndex)
-
getAvailableTracks
@Nullable() Map<ExoMedia.RendererType, TrackGroupArray> getAvailableTracks()
Retrieves a list of available tracks to select from. Typically trackSelectionAvailable should be called before this.
-
onMediaPrepared
void onMediaPrepared()
-
setRepeatMode
void setRepeatMode(int repeatMode)
-
getVolumeLeft
float getVolumeLeft()
-
getVolumeRight
float getVolumeRight()
-
setListenerMux
void setListenerMux(ListenerMux listenerMux)
-
-
-
-