CocosCreatorの実行環境、どうやらブラウザでもなく、Nodejではないようです。(Prue JS)


皆さんご存知かと思いますが、CocosCreatorではDOM APIを呼び出せません。これは、

Node.js doesn't support Web Audio because it isn't part of the JavaScript language itself - it's a separate web platform JavaScript API.

なので気になって、どんなV8(v8エンジンのみの可能性が高い)が使われていないかを調べてみました。現状JSB(JavaScript Bindings)が多用されているため、幸いオープンソースなので、解析が必要です…

参考リンク:
https://stackoverflow.com/questions/33725402/why-web-audio-api-isnt-supported-in-nodejs
https://developer.mozilla.org/en-US/docs/Web/API

本家のWebAudioAPI にACCをデコード(decoder)する機能が内蔵されており、意識しなくても再生できますが、しかし、本家のWebAudioAPIが使えない場合、どうしもWebAudioAPIのAPIに沿ったものにしないといけません。今回利用したのは
https://github.com/mohayonao/web-audio-engine

https://github.com/audiocogs/aac.js

で、web-audio-engineは全てjsで実装された音声をデコードするもので、aac.jsは、web-audio-engineで利用するデコーダーになります。

効率なく考えるには、jsのライブラリaacがスピードが出ない可能性もありますが、こちらは実際に試して、もしだめでした。ここは、デコード処理の部分のみをJSB側に移動します。