@@ -166,13 +166,17 @@ class TrackPlayer extends EventEmitter<{
166166
167167 if ( isSameMediaItem ( this . currentMusic , track ) ) {
168168 await this . setTrackSource ( track as Track , false ) ;
169+ if ( progress ) {
170+ // 异步
171+ this . seekTo ( progress ) ;
172+ }
169173 }
170174 } ) ;
171175 this . setCurrentMusic ( track ) ;
172176
173177 if ( progress ) {
174178 // 异步
175- ReactNativeTrackPlayer . seekTo ( progress ) ;
179+ this . seekTo ( progress ) ;
176180 }
177181 }
178182
@@ -433,7 +437,7 @@ class TrackPlayer extends EventEmitter<{
433437 }
434438 if ( forcePlay ) {
435439 // 2.1.1 强制重新开始
436- await ReactNativeTrackPlayer . seekTo ( 0 ) ;
440+ await this . seekTo ( 0 ) ;
437441 }
438442 const currentState = (
439443 await ReactNativeTrackPlayer . getPlaybackState ( )
@@ -689,7 +693,7 @@ class TrackPlayer extends EventEmitter<{
689693 ! musicIsPaused ( playingState ) ,
690694 ) ;
691695
692- await ReactNativeTrackPlayer . seekTo ( progress . position ?? 0 ) ;
696+ await this . seekTo ( progress . position ?? 0 ) ;
693697 this . setQuality ( newQuality ) ;
694698 }
695699 return true ;
@@ -726,10 +730,14 @@ class TrackPlayer extends EventEmitter<{
726730 }
727731 }
728732
733+ async seekTo ( progress : number ) {
734+ PersistStatus . set ( "music.progress" , progress ) ;
735+ return ReactNativeTrackPlayer . seekTo ( progress ) ;
736+ }
737+
729738 getProgress = ReactNativeTrackPlayer . getProgress ;
730739 getRate = ReactNativeTrackPlayer . getRate ;
731740 setRate = ReactNativeTrackPlayer . setRate ;
732- seekTo = ReactNativeTrackPlayer . seekTo ;
733741 reset = ReactNativeTrackPlayer . reset ;
734742
735743
0 commit comments