我目前正在尝试使用 Add-On 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>
不过,我目前正在尝试做的是读取从附加 SDK 返回的文件,而不是从 HTML 页面上的输入中读取的文件,然后创建一个 AV.Player。sdk/io/file
使用andsdk/io/byte-streams
模块读取文件非常简单。
问题是我无法弄清楚如何从这些数据中正确构建 AV.Player。从它的样子来看:
AV.Player.fromFile(x)
通过构造一个AV.Asset
fromAV.Asset.fromFile(x)
AV.Asset.fromFile(x)
构造一个AV.Asset
withAV.FileSource(x)
AV.FileSource
是通过创建一个FileReader
并将文件中的数据作为 Blob 读取来构造的
我一直在试图弄清楚如何使用 io/file.read(filePath, "br") 返回的字节数组创建一个 Blob,但没有成功。我尝试创建一个类似于具有大小、类型和切片方法的 Blob 的对象,但这似乎也不起作用。