@javascriptcommon/react-native-track-player 4.1.12 → 4.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -35,7 +35,7 @@ public class RNTrackPlayer: NSObject, AudioSessionControllerDelegate {
35
35
  private var hasInitialized = false
36
36
  private let player = QueuedAudioPlayer()
37
37
  private let audioSessionController = AudioSessionController.shared
38
- private var equalizerTap: EqualizerAudioTap?
38
+ private let equalizerTap = EqualizerAudioTap() // Always created, attached at setup
39
39
  private var shouldEmitProgressEvent: Bool = false
40
40
  private var shouldResumePlaybackAfterInterruptionEnds: Bool = false
41
41
  private var forwardJumpInterval: NSNumber? = nil;
@@ -135,11 +135,12 @@ public class RNTrackPlayer: NSObject, AudioSessionControllerDelegate {
135
135
  return
136
136
  }
137
137
 
138
- // configure the FFT audio tap
138
+ // configure the FFT audio tap if specified
139
139
  if let fftLength = config["useFFTProcessor"] as? Int {
140
140
  player.audioTap = WaveformAudioTap(mFFTLength: fftLength, mEmit: {data in
141
141
  self.emit(event:EventType.FFTUpdated, body:data)})
142
142
  }
143
+ // Note: Equalizer tap is NOT attached by default. Call setEqualizerEnabled(true) to enable.
143
144
 
144
145
  // configure buffer size
145
146
  if let bufferDuration = config["minBuffer"] as? TimeInterval {
@@ -903,17 +904,9 @@ public class RNTrackPlayer: NSObject, AudioSessionControllerDelegate {
903
904
  public func setEqualizerEnabled(enabled: Bool, resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
904
905
  if (rejectWhenNotInitialized(reject: reject)) { return }
905
906
 
906
- if enabled {
907
- if equalizerTap == nil {
908
- equalizerTap = EqualizerAudioTap()
909
- }
910
- equalizerTap?.isEnabled = true
911
- player.audioTap = equalizerTap
912
- } else {
913
- equalizerTap?.isEnabled = false
914
- player.audioTap = nil
915
- }
916
-
907
+ // Toggle the enabled flag
908
+ // Note: For the equalizer to work, the tap must be attached to the player first
909
+ equalizerTap.isEnabled = enabled
917
910
  resolve(NSNull())
918
911
  }
919
912
 
@@ -921,20 +914,14 @@ public class RNTrackPlayer: NSObject, AudioSessionControllerDelegate {
921
914
  public func getEqualizerEnabled(resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
922
915
  if (rejectWhenNotInitialized(reject: reject)) { return }
923
916
 
924
- let enabled = equalizerTap?.isEnabled ?? false
925
- resolve(enabled)
917
+ resolve(equalizerTap.isEnabled)
926
918
  }
927
919
 
928
920
  @objc(setEqualizerBand:gain:resolver:rejecter:)
929
921
  public func setEqualizerBand(band: Int, gain: Float, resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
930
922
  if (rejectWhenNotInitialized(reject: reject)) { return }
931
923
 
932
- if equalizerTap == nil {
933
- equalizerTap = EqualizerAudioTap()
934
- player.audioTap = equalizerTap
935
- }
936
-
937
- equalizerTap?.setGain(band: band, gainDB: gain)
924
+ equalizerTap.setGain(band: band, gainDB: gain)
938
925
  resolve(NSNull())
939
926
  }
940
927
 
@@ -942,13 +929,8 @@ public class RNTrackPlayer: NSObject, AudioSessionControllerDelegate {
942
929
  public func setEqualizerBands(gains: [NSNumber], resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
943
930
  if (rejectWhenNotInitialized(reject: reject)) { return }
944
931
 
945
- if equalizerTap == nil {
946
- equalizerTap = EqualizerAudioTap()
947
- player.audioTap = equalizerTap
948
- }
949
-
950
932
  let floatGains = gains.map { $0.floatValue }
951
- equalizerTap?.setAllGains(floatGains)
933
+ equalizerTap.setAllGains(floatGains)
952
934
  resolve(NSNull())
953
935
  }
954
936
 
@@ -956,8 +938,7 @@ public class RNTrackPlayer: NSObject, AudioSessionControllerDelegate {
956
938
  public func getEqualizerBands(resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
957
939
  if (rejectWhenNotInitialized(reject: reject)) { return }
958
940
 
959
- let gains = equalizerTap?.getAllGains() ?? Array(repeating: Float(0), count: 10)
960
- resolve(gains)
941
+ resolve(equalizerTap.getAllGains())
961
942
  }
962
943
 
963
944
  @objc(getEqualizerFrequencies:rejecter:)
@@ -975,13 +956,8 @@ public class RNTrackPlayer: NSObject, AudioSessionControllerDelegate {
975
956
  return
976
957
  }
977
958
 
978
- if equalizerTap == nil {
979
- equalizerTap = EqualizerAudioTap()
980
- player.audioTap = equalizerTap
981
- }
982
-
983
959
  let preset = presets[presetIndex]
984
- equalizerTap?.applyPreset(preset)
960
+ equalizerTap.applyPreset(preset)
985
961
  resolve(NSNull())
986
962
  }
987
963
 
@@ -994,7 +970,7 @@ public class RNTrackPlayer: NSObject, AudioSessionControllerDelegate {
994
970
  public func resetEqualizer(resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
995
971
  if (rejectWhenNotInitialized(reject: reject)) { return }
996
972
 
997
- equalizerTap?.resetGains()
973
+ equalizerTap.resetGains()
998
974
  resolve(NSNull())
999
975
  }
1000
976
  }
@@ -243,7 +243,45 @@ RCT_EXPORT_MODULE()
243
243
  - (void)setPlaybackState:(nonnull NSString *)mediaID resolve:(nonnull RCTPromiseResolveBlock)resolve reject:(nonnull RCTPromiseRejectBlock)reject {
244
244
  }
245
245
 
246
- - (void)switchExoPlayer:(double)fadeDuration fadeInterval:(double)fadeInterval fadeToVolume:(double)fadeToVolume waitUntil:(nonnull NSNumber *)waitUntil resolve:(nonnull RCTPromiseResolveBlock)resolve reject:(nonnull RCTPromiseRejectBlock)reject {
246
+ - (void)switchExoPlayer:(double)fadeDuration fadeInterval:(double)fadeInterval fadeToVolume:(double)fadeToVolume waitUntil:(nonnull NSNumber *)waitUntil resolve:(nonnull RCTPromiseResolveBlock)resolve reject:(nonnull RCTPromiseRejectBlock)reject {
247
+ }
248
+
249
+ // iOS Equalizer methods
250
+
251
+ - (void)setEqualizerEnabled:(BOOL)enabled resolve:(nonnull RCTPromiseResolveBlock)resolve reject:(nonnull RCTPromiseRejectBlock)reject {
252
+ [trackPlayer setEqualizerEnabled:enabled resolver:resolve rejecter:reject];
253
+ }
254
+
255
+ - (void)getEqualizerEnabled:(nonnull RCTPromiseResolveBlock)resolve reject:(nonnull RCTPromiseRejectBlock)reject {
256
+ [trackPlayer getEqualizerEnabled:resolve rejecter:reject];
257
+ }
258
+
259
+ - (void)setEqualizerBand:(double)band gain:(double)gain resolve:(nonnull RCTPromiseResolveBlock)resolve reject:(nonnull RCTPromiseRejectBlock)reject {
260
+ [trackPlayer setEqualizerBand:(NSInteger)band gain:(float)gain resolver:resolve rejecter:reject];
261
+ }
262
+
263
+ - (void)setEqualizerBands:(nonnull NSArray *)gains resolve:(nonnull RCTPromiseResolveBlock)resolve reject:(nonnull RCTPromiseRejectBlock)reject {
264
+ [trackPlayer setEqualizerBands:gains resolver:resolve rejecter:reject];
265
+ }
266
+
267
+ - (void)getEqualizerBands:(nonnull RCTPromiseResolveBlock)resolve reject:(nonnull RCTPromiseRejectBlock)reject {
268
+ [trackPlayer getEqualizerBands:resolve rejecter:reject];
269
+ }
270
+
271
+ - (void)getEqualizerFrequencies:(nonnull RCTPromiseResolveBlock)resolve reject:(nonnull RCTPromiseRejectBlock)reject {
272
+ [trackPlayer getEqualizerFrequencies:resolve rejecter:reject];
273
+ }
274
+
275
+ - (void)applyEqualizerPreset:(double)presetIndex resolve:(nonnull RCTPromiseResolveBlock)resolve reject:(nonnull RCTPromiseRejectBlock)reject {
276
+ [trackPlayer applyEqualizerPreset:(NSInteger)presetIndex resolver:resolve rejecter:reject];
277
+ }
278
+
279
+ - (void)getEqualizerPresetNames:(nonnull RCTPromiseResolveBlock)resolve reject:(nonnull RCTPromiseRejectBlock)reject {
280
+ [trackPlayer getEqualizerPresetNames:resolve rejecter:reject];
281
+ }
282
+
283
+ - (void)resetEqualizer:(nonnull RCTPromiseResolveBlock)resolve reject:(nonnull RCTPromiseRejectBlock)reject {
284
+ [trackPlayer resetEqualizer:resolve rejecter:reject];
247
285
  }
248
286
 
249
287
  @end
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@javascriptcommon/react-native-track-player",
3
- "version": "4.1.12",
3
+ "version": "4.1.13",
4
4
  "description": "A fully fledged audio module created for music apps",
5
5
  "main": "lib/src/index.js",
6
6
  "types": "lib/src/index.d.ts",