>我正在创建一个应用程序,当我按下保存按钮时,它会将给定的 blob audion 数据存储到 Firefox 操作系统中的 SDcard 中,在这里我正在为它提供代码。
var audioURL = window.URL.createObjectURL(e.data);
audio.src = audioURL;
audio.type="video/ogg";
deleteButton.onclick = function(e) {
evtTgt = e.target;
evtTgt.parentNode.parentNode.removeChild(evtTgt.parentNode);
}
saveButton.onclick = function(e) {
evtTgt = e.target;
var sdcard = navigator.getDeviceStorage("sdcard");
var file = new Blob([audioURL], {type: "video/ogg"});
var request = sdcard.addNamed(file, "my-file.ogg");
request.onsuccess = function () {
var name = this.result;
console.log('File "' + name + '" successfully wrote on the sdcard storage area');
}
在这里我已经编写了代码,但这不是 working.so 请任何人可以提供帮助??
我假设您从传递给"dataavailable"
事件的处理程序的MediaRecorder
事件对象获取数据,如下所示:https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder/ondataavailable
在这种情况下,e.data
已经是一个 Blob,只需将其传递给 addNamed
函数,如下所述:https://developer.mozilla.org/en-US/docs/Web/API/DeviceStorage/addNamed
var audioData = e.data,
audioURL = window.URL.createObjectURL(e.data);
audio.src = audioURL;
audio.type ="video/ogg";
deleteButton.onclick = function(e) {
evtTgt = e.target;
evtTgt.parentNode.parentNode.removeChild(evtTgt.parentNode);
}
saveButton.onclick = function(e) {
evtTgt = e.target;
var sdcard = navigator.getDeviceStorage("sdcard");
var request = sdcard.addNamed(audioData, "my-file.ogg");
request.onsuccess = function () {
var name = this.result;
console.log('File "' + name + '" successfully wrote on the sdcard storage area');
}
}
但是,您应该仔细检查您的代码,因为它似乎具有不匹配的括号。