@capgo/native-audio 6.2.0 → 6.2.2

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.
@@ -32,6 +32,7 @@ public class AudioAsset: NSObject, AVAudioPlayerDelegate {
32
32
  for _ in 0..<channels {
33
33
  do {
34
34
  let player: AVAudioPlayer! = try AVAudioPlayer(contentsOf: pathUrl)
35
+ player.delegate = owner
35
36
 
36
37
  if player != nil {
37
38
  player.enableRate = true
@@ -10,7 +10,7 @@ enum MyError: Error {
10
10
  /// Please read the Capacitor iOS Plugin Development Guide
11
11
  /// here: https://capacitor.ionicframework.com/docs/plugins/ios
12
12
  @objc(NativeAudio)
13
- public class NativeAudio: CAPPlugin {
13
+ public class NativeAudio: CAPPlugin, AVAudioPlayerDelegate {
14
14
 
15
15
  var audioList: [String: Any] = [:]
16
16
  var fadeMusic = false
@@ -101,6 +101,26 @@ public class NativeAudio: CAPPlugin {
101
101
  preloadAsset(call, isComplex: true)
102
102
  }
103
103
 
104
+ func activateSession() {
105
+ do {
106
+ try self.session.setActive(true)
107
+ } catch {
108
+ print("Failed to set session active")
109
+ }
110
+ }
111
+
112
+ func endSession() {
113
+ do {
114
+ try self.session.setActive(false, options: .notifyOthersOnDeactivation)
115
+ } catch {
116
+ print("Failed to deactivate audio session")
117
+ }
118
+ }
119
+
120
+ public func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool) {
121
+ self.endSession()
122
+ }
123
+
104
124
  @objc func play(_ call: CAPPluginCall) {
105
125
  let audioId = call.getString(Constant.AssetIdKey) ?? ""
106
126
  let time = call.getDouble("time") ?? 0
@@ -115,7 +135,7 @@ public class NativeAudio: CAPPlugin {
115
135
  if asset != nil {
116
136
  if asset is AudioAsset {
117
137
  let audioAsset = asset as? AudioAsset
118
-
138
+ self.activateSession()
119
139
  if self.fadeMusic {
120
140
  audioAsset?.playWithFade(time: time)
121
141
  } else {
@@ -124,6 +144,7 @@ public class NativeAudio: CAPPlugin {
124
144
  call.resolve()
125
145
  } else if asset is Int32 {
126
146
  let audioAsset = asset as? NSNumber ?? 0
147
+ self.activateSession()
127
148
  AudioServicesPlaySystemSound(SystemSoundID(audioAsset.intValue))
128
149
  call.resolve()
129
150
  } else {
@@ -175,7 +196,7 @@ public class NativeAudio: CAPPlugin {
175
196
  guard let audioAsset: AudioAsset = self.getAudioAsset(call) else {
176
197
  return
177
198
  }
178
-
199
+ self.activateSession()
179
200
  audioAsset.resume()
180
201
  call.resolve()
181
202
  }
@@ -186,6 +207,7 @@ public class NativeAudio: CAPPlugin {
186
207
  }
187
208
 
188
209
  audioAsset.pause()
210
+ self.endSession()
189
211
  call.resolve()
190
212
  }
191
213
 
@@ -194,6 +216,7 @@ public class NativeAudio: CAPPlugin {
194
216
 
195
217
  do {
196
218
  try stopAudio(audioId: audioId)
219
+ self.endSession()
197
220
  } catch {
198
221
  call.reject(Constant.ErrorAssetNotFound)
199
222
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capgo/native-audio",
3
- "version": "6.2.0",
3
+ "version": "6.2.2",
4
4
  "description": "A native plugin for native audio engine",
5
5
  "main": "dist/plugin.js",
6
6
  "module": "dist/esm/index.js",