Skip to content

Commit 7e0e6f4

Browse files
authored
Persist timecode when seeking a SoundCloudM3uAudioTrack (#173)
* feat(sc-mp3): propagate timecode to seek to for persisting the position * fix(sc-mp3): record seek after parsing headers (need downstream)
1 parent ea72ae8 commit 7e0e6f4

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

main/src/main/java/com/sedmelluq/discord/lavaplayer/container/mp3/Mp3TrackProvider.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,16 @@ public void seekToTimecode(long timecode) {
156156
}
157157
}
158158

159+
/**
160+
* Records a seek to the specified timecode without actually seeking.
161+
*
162+
* @param timecode The requested timecode in milliseconds
163+
* @param actualTimecode The actual timecode in milliseconds
164+
*/
165+
public void recordSeek(long timecode, long actualTimecode) {
166+
downstream.seekPerformed(timecode, actualTimecode);
167+
}
168+
159169
/**
160170
* @return True if the track is seekable (false for streams for example).
161171
*/

main/src/main/java/com/sedmelluq/discord/lavaplayer/source/soundcloud/SoundCloudMp3SegmentDecoder.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ public void playStream(
3535

3636
try {
3737
trackProvider.parseHeaders();
38+
39+
// Persist the position to seek to
40+
trackProvider.recordSeek(desiredPosition, startPosition);
41+
3842
trackProvider.provideFrames();
3943
} finally {
4044
trackProvider.close();

0 commit comments

Comments
 (0)