diff --git a/ios/MusicModule.swift b/ios/MusicModule.swift index 9f80f27..5499770 100644 --- a/ios/MusicModule.swift +++ b/ios/MusicModule.swift @@ -50,6 +50,7 @@ class MusicModule: RCTEventEmitter { private func sendPlaybackStateUpdate() { let state = SystemMusicPlayer.shared.state + let playbackInterval = SystemMusicPlayer.shared.playbackTime let playbackStatusDescription = describePlaybackStatus(state.playbackStatus) let playbackRate = state.playbackRate @@ -57,7 +58,8 @@ class MusicModule: RCTEventEmitter { self.getCurrentSongInfo { songInfo in var playbackInfo: [String: Any] = [ "playbackRate": playbackRate, - "playbackStatus": playbackStatusDescription + "playbackStatus": playbackStatusDescription, + "playbackTime": playbackInterval ] if let songInfo = songInfo { @@ -102,6 +104,7 @@ class MusicModule: RCTEventEmitter { case .song(let song): print("Current song: \(song.title) - \(song.artistName)") print("Current song ID: \(String(describing: song.id))") + print("Current song duration: \(song.duration ?? 0)") Task { let songID = song.id @@ -270,7 +273,8 @@ class MusicModule: RCTEventEmitter { "id": String(describing: song.id), "title": song.title, "artistName": song.artistName, - "artworkUrl": artworkUrlString + "artworkUrl": artworkUrlString, + "duration": String(song.duration ?? 0) ] } diff --git a/src/types/playback-state.ts b/src/types/playback-state.ts index aafe9ed..91235fb 100644 --- a/src/types/playback-state.ts +++ b/src/types/playback-state.ts @@ -5,4 +5,5 @@ export interface IPlaybackState { currentSong: ISong; playbackRate: number; playbackStatus: PlaybackStatus; + playbackTime: number; } diff --git a/src/types/song.ts b/src/types/song.ts index 3997922..437313d 100644 --- a/src/types/song.ts +++ b/src/types/song.ts @@ -3,4 +3,5 @@ export interface ISong { title: string; artworkUrl: string; id: string; + duration: number; }