Package com.google.android.exoplayer2
Class ExoPlaybackException
- java.lang.Object
-
- java.lang.Throwable
-
- java.lang.Exception
-
- com.google.android.exoplayer2.ExoPlaybackException
-
- All Implemented Interfaces:
Bundleable
,Serializable
public final class ExoPlaybackException extends Exception implements Bundleable
Thrown when a non locally recoverable playback failure occurs.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
ExoPlaybackException.Type
The type of source that produced the error.-
Nested classes/interfaces inherited from interface com.google.android.exoplayer2.Bundleable
Bundleable.Creator<T extends Bundleable>
-
-
Field Summary
Fields Modifier and Type Field Description static Bundleable.Creator<ExoPlaybackException>
CREATOR
Object that can restoreExoPlaybackException
from aBundle
.MediaPeriodId
mediaPeriodId
TheMediaPeriodId
of the media associated with this error, or null if undetermined.Format
rendererFormat
Iftype
isTYPE_RENDERER
, this is theFormat
the renderer was using at the time of the exception, or null if the renderer wasn't using aFormat
.int
rendererFormatSupport
int
rendererIndex
String
rendererName
Iftype
isTYPE_RENDERER
, this is the name of the renderer, or null if unknown.long
timestampMs
The value ofSystemClock.elapsedRealtime()
when this exception was created.int
type
TheExoPlaybackException.Type
of the playback failure.static int
TYPE_REMOTE
The error occurred in a remote component.static int
TYPE_RENDERER
The error occurred in aRenderer
.static int
TYPE_SOURCE
The error occurred loading data from aMediaSource
.static int
TYPE_UNEXPECTED
The error was an unexpectedRuntimeException
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static ExoPlaybackException
createForRemote(String message)
Creates an instance of typeTYPE_REMOTE
.static ExoPlaybackException
createForRenderer(Exception cause)
Creates an instance of typeTYPE_RENDERER
for an unknown renderer.static ExoPlaybackException
createForRenderer(Throwable cause, String rendererName, int rendererIndex, Format rendererFormat, int rendererFormatSupport)
Creates an instance of typeTYPE_RENDERER
.static ExoPlaybackException
createForRenderer(Throwable cause, String rendererName, int rendererIndex, Format rendererFormat, int rendererFormatSupport, boolean isRecoverable)
Creates an instance of typeTYPE_RENDERER
.static ExoPlaybackException
createForSource(IOException cause)
Creates an instance of typeTYPE_SOURCE
.static ExoPlaybackException
createForUnexpected(RuntimeException cause)
Creates an instance of typeTYPE_UNEXPECTED
.Exception
getRendererException()
Retrieves the underlying error whentype
isTYPE_RENDERER
.IOException
getSourceException()
Retrieves the underlying error whentype
isTYPE_SOURCE
.RuntimeException
getUnexpectedException()
Retrieves the underlying error whentype
isTYPE_UNEXPECTED
.Bundle
toBundle()
Returns aBundle
representing the information stored in this object.-
Methods inherited from class java.lang.Throwable
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
-
-
-
-
Field Detail
-
TYPE_SOURCE
public static final int TYPE_SOURCE
The error occurred loading data from aMediaSource
.Call
getSourceException()
to retrieve the underlying cause.- See Also:
- Constant Field Values
-
TYPE_RENDERER
public static final int TYPE_RENDERER
The error occurred in aRenderer
.Call
getRendererException()
to retrieve the underlying cause.- See Also:
- Constant Field Values
-
TYPE_UNEXPECTED
public static final int TYPE_UNEXPECTED
The error was an unexpectedRuntimeException
.Call
getUnexpectedException()
to retrieve the underlying cause.- See Also:
- Constant Field Values
-
TYPE_REMOTE
public static final int TYPE_REMOTE
The error occurred in a remote component.Call
Throwable.getMessage()
to retrieve the message associated with the error.- See Also:
- Constant Field Values
-
type
@Type public final int type
TheExoPlaybackException.Type
of the playback failure.
-
rendererName
@Nullable public final String rendererName
Iftype
isTYPE_RENDERER
, this is the name of the renderer, or null if unknown.
-
rendererIndex
public final int rendererIndex
-
rendererFormat
@Nullable public final Format rendererFormat
Iftype
isTYPE_RENDERER
, this is theFormat
the renderer was using at the time of the exception, or null if the renderer wasn't using aFormat
.
-
rendererFormatSupport
@FormatSupport public final int rendererFormatSupport
Iftype
isTYPE_RENDERER
, this is the level ofC.FormatSupport
of the renderer forrendererFormat
. IfrendererFormat
is null, this isC.FORMAT_HANDLED
.
-
timestampMs
public final long timestampMs
The value ofSystemClock.elapsedRealtime()
when this exception was created.
-
mediaPeriodId
@Nullable public final MediaPeriodId mediaPeriodId
TheMediaPeriodId
of the media associated with this error, or null if undetermined.
-
CREATOR
public static final Bundleable.Creator<ExoPlaybackException> CREATOR
Object that can restoreExoPlaybackException
from aBundle
.
-
-
Method Detail
-
createForSource
public static ExoPlaybackException createForSource(IOException cause)
Creates an instance of typeTYPE_SOURCE
.- Parameters:
cause
- The cause of the failure.- Returns:
- The created instance.
-
createForRenderer
public static ExoPlaybackException createForRenderer(Exception cause)
Creates an instance of typeTYPE_RENDERER
for an unknown renderer.- Parameters:
cause
- The cause of the failure.- Returns:
- The created instance.
-
createForRenderer
public static ExoPlaybackException createForRenderer(Throwable cause, String rendererName, int rendererIndex, @Nullable Format rendererFormat, @FormatSupport int rendererFormatSupport)
Creates an instance of typeTYPE_RENDERER
.- Parameters:
cause
- The cause of the failure.rendererIndex
- The index of the renderer in which the failure occurred.rendererFormat
- TheFormat
the renderer was using at the time of the exception, or null if the renderer wasn't using aFormat
.rendererFormatSupport
- TheC.FormatSupport
of the renderer forrendererFormat
. Ignored ifrendererFormat
is null.- Returns:
- The created instance.
-
createForRenderer
public static ExoPlaybackException createForRenderer(Throwable cause, String rendererName, int rendererIndex, @Nullable Format rendererFormat, @FormatSupport int rendererFormatSupport, boolean isRecoverable)
Creates an instance of typeTYPE_RENDERER
.- Parameters:
cause
- The cause of the failure.rendererIndex
- The index of the renderer in which the failure occurred.rendererFormat
- TheFormat
the renderer was using at the time of the exception, or null if the renderer wasn't using aFormat
.rendererFormatSupport
- TheC.FormatSupport
of the renderer forrendererFormat
. Ignored ifrendererFormat
is null.isRecoverable
- If the failure can be recovered by disabling and re-enabling the renderer.- Returns:
- The created instance.
-
createForUnexpected
public static ExoPlaybackException createForUnexpected(RuntimeException cause)
Creates an instance of typeTYPE_UNEXPECTED
.- Parameters:
cause
- The cause of the failure.- Returns:
- The created instance.
-
createForRemote
public static ExoPlaybackException createForRemote(String message)
Creates an instance of typeTYPE_REMOTE
.- Parameters:
message
- The message associated with the error.- Returns:
- The created instance.
-
getSourceException
public IOException getSourceException()
Retrieves the underlying error whentype
isTYPE_SOURCE
.- Throws:
IllegalStateException
- Iftype
is notTYPE_SOURCE
.
-
getRendererException
public Exception getRendererException()
Retrieves the underlying error whentype
isTYPE_RENDERER
.- Throws:
IllegalStateException
- Iftype
is notTYPE_RENDERER
.
-
getUnexpectedException
public RuntimeException getUnexpectedException()
Retrieves the underlying error whentype
isTYPE_UNEXPECTED
.- Throws:
IllegalStateException
- Iftype
is notTYPE_UNEXPECTED
.
-
toBundle
public Bundle toBundle()
Returns aBundle
representing the information stored in this object.It omits the
mediaPeriodId
field. ThemediaPeriodId
of an instance restored byCREATOR
will always benull
.- Specified by:
toBundle
in interfaceBundleable
-
-