0

我正在使用 CreateJS 的 SoundJS,我想知道,无论如何我可以获取音频播放的原始(十六进制)数据吗?我在音频文件中添加了一个自定义标题以用于口型同步字符,但我不知道如何获取音频的原始十六进制数据。

我试过看,_playbackResource但什么也没有。

var instance = playSound(whichTalkie);
console.log(instance._playbackResource);

我需要原始音频数据。我该如何解决这个问题?

4

1 回答 1

0

我假设您的意思是您想要加载的原始AudioBuffer

在 SoundJS 1.0 中没有正式的方法可以做到这一点(我们在 2.0 中公开了更多内容,您可以在 Git 的 in-progress 分支中看到)。

但是,您可以使用以下方法访问所有加载的缓冲区:

var plugin = createjs.Sound.activePlugin; // The WebAudioPlugin
var buffer = plugin._audioSources[url];

此外,还有更多信息,包括原始数组缓冲区,隐藏在 SoundJS 存储的加载项中。

var loader = plugin._loaders[url];
var buffer = loader.rawResult;

不幸的是,没有干净的方法可以从声音实例中获取缓冲区。

你监听“fileload”事件,可以直接从事件中获取src:

createjs.Sound.on("fileload", handleFileLoad);
  createjs.Sound.registerSound("https://s3-us-west-2.amazonaws.com/s.cdpn.io/1524180/MK21.mp3", "music");
function handleFileLoad(event) {
    var src = event.src;
    // Use whatever approach to get the Array or Audio buffer
}

或者从play()调用中获取 src:

var inst = createjs.Sound.play("music");
var src = inst.src;

我希望这会有所帮助!

于 2019-07-25T15:23:39.557 回答