[canvaskit] perform audio asset lookup by layer id
Change-Id: Iac56d11a76be8d90df1159631a02f1713ece1bd8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/368938
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
diff --git a/modules/canvaskit/skottie.js b/modules/canvaskit/skottie.js
index f815fc7..acd70ba 100644
--- a/modules/canvaskit/skottie.js
+++ b/modules/canvaskit/skottie.js
@@ -8,6 +8,8 @@
// prop_filter_prefix is an optional string acting as a name filter for selecting
// "interesting" Lottie properties (surfaced in the embedded player controls)
+// soundMap is an optional object that maps string names to AudioPlayers
+// AudioPlayers manage a single audio layer with a seek function
CanvasKit.MakeManagedAnimation = function(json, assets, prop_filter_prefix, soundMap) {
if (!CanvasKit._MakeManagedAnimation) {
throw 'Not compiled with MakeManagedAnimation';
diff --git a/modules/canvaskit/skottie_bindings.cpp b/modules/canvaskit/skottie_bindings.cpp
index 334bc3a..980d6ab 100644
--- a/modules/canvaskit/skottie_bindings.cpp
+++ b/modules/canvaskit/skottie_bindings.cpp
@@ -70,9 +70,9 @@
}
sk_sp<skresources::ExternalTrackAsset> loadAudioAsset(const char[] /* path */,
- const char name[],
- const char[] /*id*/) override {
- emscripten::val player = this->findSoundAsset(name);
+ const char[] /* name */,
+ const char id[]) override {
+ emscripten::val player = this->findSoundAsset(id);
if (player.as<bool>()) {
return sk_make_sp<WebTrack>(std::move(player));
}
diff --git a/modules/canvaskit/tests/skottie.spec.js b/modules/canvaskit/tests/skottie.spec.js
index adacd4e..247198a 100644
--- a/modules/canvaskit/tests/skottie.spec.js
+++ b/modules/canvaskit/tests/skottie.spec.js
@@ -97,7 +97,7 @@
}
}
for (let i = 0; i < 20; i++) {
- var name = 'aud_' + i + '.mp3';
+ var name = 'audio_' + i;
mockSoundMap.setPlayer(name, new mockPlayer(name));
}
fetch('/assets/audio_external.json')