@@ -13,8 +13,8 @@ import type {
1313 TrackMetadataBase ,
1414 UpdateOptions ,
1515} from './interfaces' ;
16- import resolveAssetSource from './resolveAssetSource' ;
1716import TrackPlayer from './NativeTrackPlayer' ;
17+ import resolveAssetSource from './resolveAssetSource' ;
1818
1919const isAndroid = Platform . OS === 'android' ;
2020const emitter = new NativeEventEmitter ( TrackPlayer ) ;
@@ -35,6 +35,14 @@ function resolveImportedAsset(id?: number) {
3535 : undefined ;
3636}
3737
38+ function resolveTrackAssets ( track : AddTrack ) {
39+ return {
40+ ...track ,
41+ url : resolveImportedAssetOrPath ( track . url ) ,
42+ artwork : resolveImportedAssetOrPath ( track . artwork ) ,
43+ } ;
44+ }
45+
3846// MARK: - General API
3947
4048/**
@@ -99,25 +107,19 @@ export async function add(
99107 tracks : AddTrack | AddTrack [ ] ,
100108 insertBeforeIndex = - 1
101109) : Promise < number | void > {
102- const resolvedTracks = ( Array . isArray ( tracks ) ? tracks : [ tracks ] ) . map (
103- ( track ) => ( {
104- ...track ,
105- url : resolveImportedAssetOrPath ( track . url ) ,
106- artwork : resolveImportedAssetOrPath ( track . artwork ) ,
107- } )
108- ) ;
109- return resolvedTracks . length < 1
110+ const addTracks = Array . isArray ( tracks ) ? tracks : [ tracks ] ;
111+ return addTracks . length < 1
110112 ? undefined
111- : TrackPlayer . add ( resolvedTracks , insertBeforeIndex ) ;
113+ : TrackPlayer . add ( addTracks . map ( resolveTrackAssets ) , insertBeforeIndex ) ;
112114}
113115
114116/**
115117 * Replaces the current track or loads the track as the first in the queue.
116118 *
117119 * @param track The track to load.
118120 */
119- export async function load ( track : Track ) : Promise < number | void > {
120- return TrackPlayer . load ( track ) ;
121+ export async function load ( track : AddTrack ) : Promise < number | void > {
122+ return TrackPlayer . load ( resolveTrackAssets ( track ) ) ;
121123}
122124
123125/**
0 commit comments