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
0a9b11d3
authored
Oct 07, 2020
by
bachinger
Committed by
kim-vde
Oct 13, 2020
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Make resetPosition reset the position if true
Issue: #8024 PiperOrigin-RevId: 335846035
parent
64d5be87
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
49 additions
and
6 deletions
extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java
library/core/src/main/java/com/google/android/exoplayer2/BasePlayer.java
library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java
library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java
extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java
View file @
0a9b11d3
...
@@ -310,6 +310,13 @@ public final class CastPlayer extends BasePlayer {
...
@@ -310,6 +310,13 @@ public final class CastPlayer extends BasePlayer {
}
}
@Override
@Override
public
void
setMediaItems
(
List
<
MediaItem
>
mediaItems
,
boolean
resetPosition
)
{
int
windowIndex
=
resetPosition
?
0
:
getCurrentWindowIndex
();
long
startPositionMs
=
resetPosition
?
C
.
TIME_UNSET
:
getContentPosition
();
setMediaItems
(
mediaItems
,
windowIndex
,
startPositionMs
);
}
@Override
public
void
setMediaItems
(
public
void
setMediaItems
(
List
<
MediaItem
>
mediaItems
,
int
startWindowIndex
,
long
startPositionMs
)
{
List
<
MediaItem
>
mediaItems
,
int
startWindowIndex
,
long
startPositionMs
)
{
setMediaItemsInternal
(
setMediaItemsInternal
(
...
...
library/core/src/main/java/com/google/android/exoplayer2/BasePlayer.java
View file @
0a9b11d3
...
@@ -45,12 +45,6 @@ public abstract class BasePlayer implements Player {
...
@@ -45,12 +45,6 @@ public abstract class BasePlayer implements Player {
}
}
@Override
@Override
public
void
setMediaItems
(
List
<
MediaItem
>
mediaItems
,
boolean
resetPosition
)
{
setMediaItems
(
mediaItems
,
/* startWindowIndex= */
C
.
INDEX_UNSET
,
/* startPositionMs= */
C
.
TIME_UNSET
);
}
@Override
public
void
setMediaItems
(
List
<
MediaItem
>
mediaItems
)
{
public
void
setMediaItems
(
List
<
MediaItem
>
mediaItems
)
{
setMediaItems
(
mediaItems
,
/* resetPosition= */
true
);
setMediaItems
(
mediaItems
,
/* resetPosition= */
true
);
}
}
...
...
library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java
View file @
0a9b11d3
...
@@ -339,6 +339,11 @@ import java.util.concurrent.TimeoutException;
...
@@ -339,6 +339,11 @@ import java.util.concurrent.TimeoutException;
}
}
@Override
@Override
public
void
setMediaItems
(
List
<
MediaItem
>
mediaItems
,
boolean
resetPosition
)
{
setMediaSources
(
createMediaSources
(
mediaItems
),
resetPosition
);
}
@Override
public
void
setMediaItems
(
public
void
setMediaItems
(
List
<
MediaItem
>
mediaItems
,
int
startWindowIndex
,
long
startPositionMs
)
{
List
<
MediaItem
>
mediaItems
,
int
startWindowIndex
,
long
startPositionMs
)
{
setMediaSources
(
createMediaSources
(
mediaItems
),
startWindowIndex
,
startPositionMs
);
setMediaSources
(
createMediaSources
(
mediaItems
),
startWindowIndex
,
startPositionMs
);
...
...
library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java
View file @
0a9b11d3
...
@@ -109,6 +109,7 @@ import com.google.android.exoplayer2.util.Assertions;
...
@@ -109,6 +109,7 @@ import com.google.android.exoplayer2.util.Assertions;
import
com.google.android.exoplayer2.util.Clock
;
import
com.google.android.exoplayer2.util.Clock
;
import
com.google.android.exoplayer2.util.MimeTypes
;
import
com.google.android.exoplayer2.util.MimeTypes
;
import
com.google.common.collect.ImmutableList
;
import
com.google.common.collect.ImmutableList
;
import
com.google.common.collect.Lists
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Arrays
;
...
@@ -5707,6 +5708,42 @@ public final class ExoPlayerTest {
...
@@ -5707,6 +5708,42 @@ public final class ExoPlayerTest {
}
}
@Test
@Test
public
void
setMediaItems_resetPosition_resetsPosition
()
throws
Exception
{
final
int
[]
currentWindowIndices
=
{
C
.
INDEX_UNSET
,
C
.
INDEX_UNSET
};
final
long
[]
currentPositions
=
{
C
.
INDEX_UNSET
,
C
.
INDEX_UNSET
};
ActionSchedule
actionSchedule
=
new
ActionSchedule
.
Builder
(
TAG
)
.
pause
()
.
executeRunnable
(
new
PlayerRunnable
()
{
@Override
public
void
run
(
SimpleExoPlayer
player
)
{
player
.
seekTo
(
/* windowIndex= */
1
,
/* positionMs= */
1000
);
currentWindowIndices
[
0
]
=
player
.
getCurrentWindowIndex
();
currentPositions
[
0
]
=
player
.
getCurrentPosition
();
List
<
MediaItem
>
listOfTwo
=
Lists
.
newArrayList
(
MediaItem
.
fromUri
(
Uri
.
EMPTY
),
MediaItem
.
fromUri
(
Uri
.
EMPTY
));
player
.
setMediaItems
(
listOfTwo
,
/* resetPosition= */
true
);
currentWindowIndices
[
1
]
=
player
.
getCurrentWindowIndex
();
currentPositions
[
1
]
=
player
.
getCurrentPosition
();
}
})
.
prepare
()
.
waitForTimelineChanged
()
.
play
()
.
build
();
new
ExoPlayerTestRunner
.
Builder
(
context
)
.
setActionSchedule
(
actionSchedule
)
.
build
()
.
start
(
/* doPrepare= */
false
)
.
blockUntilActionScheduleFinished
(
TIMEOUT_MS
)
.
blockUntilEnded
(
TIMEOUT_MS
);
assertArrayEquals
(
new
int
[]
{
1
,
0
},
currentWindowIndices
);
assertArrayEquals
(
new
long
[]
{
1000
,
0
},
currentPositions
);
}
@Test
public
void
setMediaSources_empty_whenEmpty_validInitialSeek_correctMaskingWindowIndex
()
public
void
setMediaSources_empty_whenEmpty_validInitialSeek_correctMaskingWindowIndex
()
throws
Exception
{
throws
Exception
{
Timeline
secondTimeline
=
new
FakeTimeline
(
/* windowCount= */
1
);
Timeline
secondTimeline
=
new
FakeTimeline
(
/* windowCount= */
1
);
...
...
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