現在、アドオン SDK を使用して Mozilla Firefox 用の音楽プレーヤー アドオンを作成しようとしています。Aurora.js ( Wiki ) を使用して、オーディオ ファイルの読み込み/デマルチプレクサ/デコードを処理しています
私は現在アドオンを動作させているので、HTML ファイル入力で音声ファイルを選択できます。これは非常に簡単です。
<input type="file" id="file-selector" />
<script>
var fileSelector = document.getElementById("file-selector");
fileSelector.onchange = function() {
var audioFile = fileSelector.files[0];
var audioPlayer = AV.Player.fromFile(audioFile);
audioPlayer.play();
};
</script>
私が現在やろうとしているのは、HTML ページの入力からのファイルではなく、アドオン SDK から返されたファイルを読み取り、AV.Player を作成することです。sdk/io/file
およびsdk/io/byte-streams
モジュールを使用すると、ファイルの読み取りは簡単です。
問題は、このデータから AV.Player を適切に構築する方法がわからないことです。それがどのように見えるかから:
AV.Player.fromFile(x)
AV.Asset
fromを構築することによって機能しますAV.Asset.fromFile(x)
AV.Asset.fromFile(x)
with を構築AV.Asset
しますAV.FileSource(x)
AV.FileSource
を作成FileReader
し、ファイルからデータを Blob として読み取ることによって構築されます。
io/file.read(filePath, "br") によって返されるバイト配列を使用して Blob を作成する方法を見つけようとしましたが、うまくいきませんでした。サイズ、タイプ、およびスライス メソッドを使用して Blob に似たオブジェクトを作成しようとしましたが、これもうまくいかないようです。