@capgo/native-audio 4.2.2 → 4.2.3
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.
- package/ios/Plugin/AudioAsset.swift +32 -33
- package/ios/Plugin/Plugin.swift +7 -8
- package/package.json +3 -3
@@ -9,31 +9,31 @@
|
|
9
9
|
import AVFoundation
|
10
10
|
|
11
11
|
public class AudioAsset: NSObject, AVAudioPlayerDelegate {
|
12
|
-
|
12
|
+
|
13
13
|
var channels: NSMutableArray = NSMutableArray()
|
14
14
|
var playIndex: Int = 0
|
15
15
|
var assetId: String = ""
|
16
16
|
var initialVolume: NSNumber = 1.0
|
17
17
|
var fadeDelay: NSNumber = 1.0
|
18
18
|
var owner: NativeAudio
|
19
|
-
|
19
|
+
|
20
20
|
let FADE_STEP: Float = 0.05
|
21
21
|
let FADE_DELAY: Float = 0.08
|
22
|
-
|
23
|
-
init(owner:NativeAudio, withAssetId assetId:String, withPath path: String!, withChannels channels: NSNumber!, withVolume volume: NSNumber!, withFadeDelay delay: NSNumber!) {
|
22
|
+
|
23
|
+
init(owner: NativeAudio, withAssetId assetId: String, withPath path: String!, withChannels channels: NSNumber!, withVolume volume: NSNumber!, withFadeDelay delay: NSNumber!) {
|
24
24
|
|
25
25
|
self.owner = owner
|
26
26
|
self.assetId = assetId
|
27
27
|
self.channels = NSMutableArray.init(capacity: channels as! Int)
|
28
|
-
|
28
|
+
|
29
29
|
super.init()
|
30
|
-
|
30
|
+
|
31
31
|
let pathUrl: NSURL! = NSURL.fileURL(withPath: path) as NSURL
|
32
|
-
|
32
|
+
|
33
33
|
for _ in 0..<channels.intValue {
|
34
34
|
do {
|
35
35
|
let player: AVAudioPlayer! = try AVAudioPlayer(contentsOf: pathUrl as URL)
|
36
|
-
|
36
|
+
|
37
37
|
if player != nil {
|
38
38
|
player.volume = volume.floatValue
|
39
39
|
player.prepareToPlay()
|
@@ -43,11 +43,11 @@ public class AudioAsset: NSObject, AVAudioPlayerDelegate {
|
|
43
43
|
}
|
44
44
|
}
|
45
45
|
} catch {
|
46
|
-
|
46
|
+
|
47
47
|
}
|
48
48
|
}
|
49
49
|
}
|
50
|
-
|
50
|
+
|
51
51
|
func getCurrentTime() -> TimeInterval {
|
52
52
|
if channels.count != 1 {
|
53
53
|
return 0
|
@@ -57,7 +57,7 @@ public class AudioAsset: NSObject, AVAudioPlayerDelegate {
|
|
57
57
|
|
58
58
|
return player.currentTime
|
59
59
|
}
|
60
|
-
|
60
|
+
|
61
61
|
func getDuration() -> TimeInterval {
|
62
62
|
if channels.count != 1 {
|
63
63
|
return 0
|
@@ -76,11 +76,11 @@ public class AudioAsset: NSObject, AVAudioPlayerDelegate {
|
|
76
76
|
playIndex = Int(truncating: NSNumber(value: playIndex + 1))
|
77
77
|
playIndex = Int(truncating: NSNumber(value: playIndex % channels.count))
|
78
78
|
}
|
79
|
-
|
79
|
+
|
80
80
|
func playWithFade(time: TimeInterval) {
|
81
81
|
let player: AVAudioPlayer! = channels.object(at: playIndex) as? AVAudioPlayer
|
82
82
|
player.currentTime = time
|
83
|
-
|
83
|
+
|
84
84
|
if !player.isPlaying {
|
85
85
|
player.numberOfLoops = 0
|
86
86
|
player.volume = 0
|
@@ -92,7 +92,7 @@ public class AudioAsset: NSObject, AVAudioPlayerDelegate {
|
|
92
92
|
player.volume = player.volume + self.FADE_STEP
|
93
93
|
}
|
94
94
|
}
|
95
|
-
|
95
|
+
|
96
96
|
}
|
97
97
|
|
98
98
|
func pause() {
|
@@ -106,17 +106,17 @@ public class AudioAsset: NSObject, AVAudioPlayerDelegate {
|
|
106
106
|
let timeOffset = player.deviceCurrentTime + 0.01
|
107
107
|
player.play(atTime: timeOffset)
|
108
108
|
}
|
109
|
-
|
109
|
+
|
110
110
|
func stop() {
|
111
111
|
for i in 0..<channels.count {
|
112
112
|
let player: AVAudioPlayer! = channels.object(at: i) as? AVAudioPlayer
|
113
113
|
player.stop()
|
114
114
|
}
|
115
115
|
}
|
116
|
-
|
116
|
+
|
117
117
|
func stopWithFade() {
|
118
118
|
let player: AVAudioPlayer! = channels.object(at: playIndex) as? AVAudioPlayer
|
119
|
-
|
119
|
+
|
120
120
|
if !player.isPlaying {
|
121
121
|
player.currentTime = 0.0
|
122
122
|
player.numberOfLoops = 0
|
@@ -125,51 +125,50 @@ public class AudioAsset: NSObject, AVAudioPlayerDelegate {
|
|
125
125
|
playIndex = Int(truncating: NSNumber(value: playIndex + 1))
|
126
126
|
playIndex = Int(truncating: NSNumber(value: playIndex % channels.count))
|
127
127
|
} else {
|
128
|
-
if player.volume < initialVolume.floatValue
|
129
|
-
{
|
128
|
+
if player.volume < initialVolume.floatValue {
|
130
129
|
player.volume = player.volume + self.FADE_STEP
|
131
130
|
}
|
132
131
|
}
|
133
132
|
}
|
134
|
-
|
133
|
+
|
135
134
|
func loop() {
|
136
135
|
self.stop()
|
137
|
-
|
136
|
+
|
138
137
|
let player: AVAudioPlayer! = channels.object(at: Int(playIndex)) as? AVAudioPlayer
|
139
138
|
player.numberOfLoops = -1
|
140
139
|
player.play()
|
141
140
|
playIndex = Int(truncating: NSNumber(value: playIndex + 1))
|
142
141
|
playIndex = Int(truncating: NSNumber(value: playIndex % channels.count))
|
143
142
|
}
|
144
|
-
|
143
|
+
|
145
144
|
func unload() {
|
146
145
|
self.stop()
|
147
|
-
|
148
|
-
// for i in 0..<channels.count {
|
149
|
-
// var player: AVAudioPlayer! = channels.object(at: i) as? AVAudioPlayer
|
150
|
-
//
|
151
|
-
// player = nil
|
152
|
-
// }
|
153
|
-
|
146
|
+
|
147
|
+
// for i in 0..<channels.count {
|
148
|
+
// var player: AVAudioPlayer! = channels.object(at: i) as? AVAudioPlayer
|
149
|
+
//
|
150
|
+
// player = nil
|
151
|
+
// }
|
152
|
+
|
154
153
|
channels = NSMutableArray()
|
155
154
|
}
|
156
|
-
|
155
|
+
|
157
156
|
func setVolume(volume: NSNumber!) {
|
158
157
|
for i in 0..<channels.count {
|
159
158
|
let player: AVAudioPlayer! = channels.object(at: i) as? AVAudioPlayer
|
160
159
|
player.volume = volume.floatValue
|
161
160
|
}
|
162
161
|
}
|
163
|
-
|
162
|
+
|
164
163
|
public func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool) {
|
165
164
|
NSLog("playerDidFinish")
|
166
165
|
self.owner.notifyListeners("complete", data: [
|
167
166
|
"assetId": self.assetId
|
168
167
|
])
|
169
168
|
}
|
170
|
-
|
169
|
+
|
171
170
|
func playerDecodeError(player: AVAudioPlayer!, error: NSError!) {
|
172
|
-
|
171
|
+
|
173
172
|
}
|
174
173
|
|
175
174
|
func isPlaying() -> Bool {
|
package/ios/Plugin/Plugin.swift
CHANGED
@@ -14,11 +14,11 @@ enum MyError: Error {
|
|
14
14
|
@objc(NativeAudio)
|
15
15
|
public class NativeAudio: CAPPlugin {
|
16
16
|
|
17
|
-
var audioList: [String
|
17
|
+
var audioList: [String: Any] = [:]
|
18
18
|
var fadeMusic = false
|
19
19
|
var session = AVAudioSession.sharedInstance()
|
20
20
|
|
21
|
-
public
|
21
|
+
override public func load() {
|
22
22
|
super.load()
|
23
23
|
|
24
24
|
self.fadeMusic = false
|
@@ -72,7 +72,7 @@ public class NativeAudio: CAPPlugin {
|
|
72
72
|
audioAsset?.play(time: time)
|
73
73
|
}
|
74
74
|
call.resolve()
|
75
|
-
} else if
|
75
|
+
} else if asset is Int32 {
|
76
76
|
let audioAsset = asset as? NSNumber ?? 0
|
77
77
|
AudioServicesPlaySystemSound(SystemSoundID(audioAsset.intValue ))
|
78
78
|
call.resolve()
|
@@ -101,7 +101,6 @@ public class NativeAudio: CAPPlugin {
|
|
101
101
|
return nil
|
102
102
|
}
|
103
103
|
|
104
|
-
|
105
104
|
@objc func getDuration(_ call: CAPPluginCall) {
|
106
105
|
guard let audioAsset: AudioAsset = self.getAudioAsset(call) else {
|
107
106
|
return
|
@@ -165,7 +164,7 @@ public class NativeAudio: CAPPlugin {
|
|
165
164
|
let asset = self.audioList[audioId]
|
166
165
|
if asset != nil && asset is AudioAsset {
|
167
166
|
let audioAsset = asset as! AudioAsset
|
168
|
-
audioAsset.unload()
|
167
|
+
audioAsset.unload()
|
169
168
|
self.audioList[audioId] = nil
|
170
169
|
}
|
171
170
|
}
|
@@ -182,7 +181,7 @@ public class NativeAudio: CAPPlugin {
|
|
182
181
|
audioAsset.setVolume(volume: volume as NSNumber)
|
183
182
|
call.resolve()
|
184
183
|
}
|
185
|
-
|
184
|
+
|
186
185
|
@objc func isPlaying(_ call: CAPPluginCall) {
|
187
186
|
guard let audioAsset: AudioAsset = self.getAudioAsset(call) else {
|
188
187
|
return
|
@@ -192,7 +191,7 @@ public class NativeAudio: CAPPlugin {
|
|
192
191
|
"isPlaying": audioAsset.isPlaying()
|
193
192
|
])
|
194
193
|
}
|
195
|
-
|
194
|
+
|
196
195
|
private func preloadAsset(_ call: CAPPluginCall, isComplex complex: Bool) {
|
197
196
|
let audioId = call.getString(Constant.AssetIdKey) ?? ""
|
198
197
|
let channels: NSNumber?
|
@@ -203,7 +202,7 @@ public class NativeAudio: CAPPlugin {
|
|
203
202
|
if audioId != "" {
|
204
203
|
let assetPath: String = call.getString(Constant.AssetPathKey) ?? ""
|
205
204
|
|
206
|
-
if
|
205
|
+
if complex {
|
207
206
|
volume = call.getFloat("volume") ?? 1.0
|
208
207
|
channels = NSNumber(value: call.getInt("channels") ?? 1)
|
209
208
|
delay = NSNumber(value: call.getInt("delay") ?? 1)
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@capgo/native-audio",
|
3
|
-
"version": "4.2.
|
3
|
+
"version": "4.2.3",
|
4
4
|
"description": "A native plugin for native audio engine",
|
5
5
|
"main": "dist/plugin.js",
|
6
6
|
"module": "dist/esm/index.js",
|
@@ -26,13 +26,13 @@
|
|
26
26
|
"verify:android": "cd android && ./gradlew clean build test && cd ..",
|
27
27
|
"verify:web": "npm run build",
|
28
28
|
"lint": "npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint",
|
29
|
-
"fmt": "npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- autocorrect --format",
|
29
|
+
"fmt": "npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --autocorrect --format",
|
30
30
|
"eslint": "eslint . --ext ts",
|
31
31
|
"prettier": "prettier \"**/*.{css,html,ts,js,java}\"",
|
32
32
|
"swiftlint": "node-swiftlint",
|
33
33
|
"docgen": "docgen --api NativeAudio --output-readme README.md --output-json dist/docs.json",
|
34
34
|
"build": "npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs",
|
35
|
-
"clean": "rimraf ./dist",
|
35
|
+
"clean": "rimraf ./dist && cd android && ./gradlew clean && cd ..",
|
36
36
|
"watch": "tsc --watch",
|
37
37
|
"prepublishOnly": "npm run build",
|
38
38
|
"prepare": "husky install"
|