Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
SDK
/
exoplayer
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
536f7c8d
authored
Jun 04, 2021
by
aquilescanta
Committed by
bachinger
Jun 08, 2021
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Make StyledPlayerView depend on PlaybackException
PiperOrigin-RevId: 377480089
parent
cc3cd702
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
24 additions
and
26 deletions
demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java
library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java
demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java
View file @
536f7c8d
...
...
@@ -456,35 +456,33 @@ public class PlayerActivity extends AppCompatActivity
}
}
private
class
PlayerErrorMessageProvider
implements
ErrorMessageProvider
<
Exo
PlaybackException
>
{
private
class
PlayerErrorMessageProvider
implements
ErrorMessageProvider
<
PlaybackException
>
{
@Override
@NonNull
public
Pair
<
Integer
,
String
>
getErrorMessage
(
@NonNull
Exo
PlaybackException
e
)
{
public
Pair
<
Integer
,
String
>
getErrorMessage
(
@NonNull
PlaybackException
e
)
{
String
errorString
=
getString
(
R
.
string
.
error_generic
);
if
(
e
.
type
==
ExoPlaybackException
.
TYPE_RENDERER
)
{
Exception
cause
=
e
.
getRendererException
();
if
(
cause
instanceof
DecoderInitializationException
)
{
// Special case for decoder initialization failures.
DecoderInitializationException
decoderInitializationException
=
(
DecoderInitializationException
)
cause
;
if
(
decoderInitializationException
.
codecInfo
==
null
)
{
if
(
decoderInitializationException
.
getCause
()
instanceof
DecoderQueryException
)
{
errorString
=
getString
(
R
.
string
.
error_querying_decoders
);
}
else
if
(
decoderInitializationException
.
secureDecoderRequired
)
{
errorString
=
getString
(
R
.
string
.
error_no_secure_decoder
,
decoderInitializationException
.
mimeType
);
}
else
{
errorString
=
getString
(
R
.
string
.
error_no_decoder
,
decoderInitializationException
.
mimeType
);
}
}
else
{
Throwable
cause
=
e
.
getCause
();
if
(
cause
instanceof
DecoderInitializationException
)
{
// Special case for decoder initialization failures.
DecoderInitializationException
decoderInitializationException
=
(
DecoderInitializationException
)
cause
;
if
(
decoderInitializationException
.
codecInfo
==
null
)
{
if
(
decoderInitializationException
.
getCause
()
instanceof
DecoderQueryException
)
{
errorString
=
getString
(
R
.
string
.
error_querying_decoders
);
}
else
if
(
decoderInitializationException
.
secureDecoderRequired
)
{
errorString
=
getString
(
R
.
string
.
error_instantiating_decoder
,
decoderInitializationException
.
codecInfo
.
name
);
R
.
string
.
error_no_secure_decoder
,
decoderInitializationException
.
mimeType
);
}
else
{
errorString
=
getString
(
R
.
string
.
error_no_decoder
,
decoderInitializationException
.
mimeType
);
}
}
else
{
errorString
=
getString
(
R
.
string
.
error_instantiating_decoder
,
decoderInitializationException
.
codecInfo
.
name
);
}
}
return
Pair
.
create
(
0
,
errorString
);
...
...
library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java
View file @
536f7c8d
...
...
@@ -48,8 +48,8 @@ import androidx.annotation.RequiresApi;
import
androidx.core.content.ContextCompat
;
import
com.google.android.exoplayer2.C
;
import
com.google.android.exoplayer2.ControlDispatcher
;
import
com.google.android.exoplayer2.ExoPlaybackException
;
import
com.google.android.exoplayer2.Format
;
import
com.google.android.exoplayer2.PlaybackException
;
import
com.google.android.exoplayer2.Player
;
import
com.google.android.exoplayer2.Player.DiscontinuityReason
;
import
com.google.android.exoplayer2.Timeline
;
...
...
@@ -306,7 +306,7 @@ public class StyledPlayerView extends FrameLayout implements AdViewProvider {
@Nullable
private
Drawable
defaultArtwork
;
private
@ShowBuffering
int
showBuffering
;
private
boolean
keepContentOnPlayerReset
;
@Nullable
private
ErrorMessageProvider
<?
super
Exo
PlaybackException
>
errorMessageProvider
;
@Nullable
private
ErrorMessageProvider
<?
super
PlaybackException
>
errorMessageProvider
;
@Nullable
private
CharSequence
customErrorMessage
;
private
int
controllerShowTimeoutMs
;
private
boolean
controllerAutoShow
;
...
...
@@ -760,7 +760,7 @@ public class StyledPlayerView extends FrameLayout implements AdViewProvider {
* @param errorMessageProvider The error message provider.
*/
public
void
setErrorMessageProvider
(
@Nullable
ErrorMessageProvider
<?
super
Exo
PlaybackException
>
errorMessageProvider
)
{
@Nullable
ErrorMessageProvider
<?
super
PlaybackException
>
errorMessageProvider
)
{
if
(
this
.
errorMessageProvider
!=
errorMessageProvider
)
{
this
.
errorMessageProvider
=
errorMessageProvider
;
updateErrorMessage
();
...
...
@@ -1414,7 +1414,7 @@ public class StyledPlayerView extends FrameLayout implements AdViewProvider {
errorMessageView
.
setVisibility
(
View
.
VISIBLE
);
return
;
}
@Nullable
Exo
PlaybackException
error
=
player
!=
null
?
player
.
getPlayerError
()
:
null
;
@Nullable
PlaybackException
error
=
player
!=
null
?
player
.
getPlayerError
()
:
null
;
if
(
error
!=
null
&&
errorMessageProvider
!=
null
)
{
CharSequence
errorMessage
=
errorMessageProvider
.
getErrorMessage
(
error
).
second
;
errorMessageView
.
setText
(
errorMessage
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment