- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的应用程序中使用需要作为缓冲区数组获取的音频文件。为此,我让用户选择一个文件 ( using Ionic/Cordova FileChooser Plugin ),然后我得到一个 URL,如:
content://com.android.providers.media.documents/document/audio%3A8431
之后,我把这个发给了Cordova Plugin File resolveNativePath
函数,我得到的路径如下:
file:///storage/emulated/0/Prueba interno/Interno, Teddybär, Dreh Dich Um__320kbps.mp3
在这里,我制作了我的 audioFileInfo
对象
audioFileInfo = {name: "Interno, Teddybär, Dreh Dich Um__320kbps.mp3",
originalPath: "content://com.android.providers.media.documents/document/audio%3A8431",
path: "file:///storage/emulated/0/Prueba interno"}
最后我调用 filePlugin.readAsArrayBuffer(audioFileInfo.path, audioFileInfo.name)
来获取缓冲区数组。
当文件在设备内部存储中时它工作正常,但是当文件来自 SDCard 时它不起作用,因为 readAsArrayBuffer
返回“未找到”。
SD 卡:
文件选择器 URL
content://com.android.externalstorage.documents/document/3D91-1C14%3AM%C3%BAsica%20Dana%2F1%20-%20Teddyb%C3%A4r%2C%20Teddyb%C3%A4r%2C%20Dreh%20Dich%20Um__320kbps.mp3
resolveNativePath:
file:///sdcard/Música Dana/1 - Teddybär, Teddybär, Dreh Dich Um__320kbps.mp3
音频文件信息:
audioFileInfo = {
name :"1 - Teddybär, Teddybär, Dreh Dich Um__320kbps.mp3"
originalPath : "content://com.android.externalstorage.documents/document/3D91-1C14%3AM%C3%BAsica%20Dana%2F1%20-%20Teddyb%C3%A4r%2C%20Teddyb%C3%A4r%2C%20Dreh%20Dich%20Um__320kbps.mp3",
path : "file:///sdcard/Música Dana"
}
readAsArrayBuffer:
FileError {code: 1, message: "NOT_FOUND_ERR"}
我尝试了 FilePlugins 的 resolveLocalFilesystemUrl()
并且我得到了这个 Entry
对象:
{
filesystem: {
name: "content",
root: {
filesystem {
name: "content",
root: "...."
}
},
fullPath: "/",
isDirectory: true,
isFile: false,
name: "",
nativeURL: "content://",
},
fullPath: "/com.android.externalstorage.documents/document/3D91-1C14:Música Dana/1 - Teddybär, Teddybär, Dreh Dich Um__320kbps.mp3",
isDirectory: false,
isFile: true,
name: "1 - Teddybär, Teddybär, Dreh Dich Um__320kbps.mp3",
nativeURL: "content://com.android.externalstorage.documents/document/3D91-1C14%3AM%C3%BAsica%20Dana%2F1%20-%20Teddyb%C3%A4r%2C%20Teddyb%C3%A4r%2C%20Dreh%20Dich%20Um__320kbps.mp3",
}
但我不知道在 readAsArrayBuffer
函数的第一个参数中使用什么作为 path
。
如果我使用fullPath
和name
,它会抛出编码错误。如果我只从 fullPath
中获取没有名称的“路径”,它也会抛出编码错误。
有没有人有过类似的经历?
最佳答案
我最终制作了自己的 FileReader 以使用 resolveLocalFilesystemUrl
返回的信息处理文件,请注意此代码使用 Typescript
let entry = await this.filePlugin.resolveLocalFilesystemUrl(audioFileInfo.originalPath);
let fileEntry: FileEntry = entry as FileEntry;
console.log("fileEntry", fileEntry);
let readFilePromise = new Promise < any > (resolve => {
console.log("getting File from fileEntry");
// fileEntry.getMetadata(data => {
// console.error("metadata", data);
// });
fileEntry.file((file) => {
console.log("File", file);
var reader = new FileReader();
reader.onloadend = () => {
console.log("Successful file read: ", reader.result);
resolve(reader.result);
};
reader.onprogress = (progressEvent) => {
let fileUpdateInfo: FileLoadingUpdateInfo = {
audioFileInfo: audioFileInfo,
total: progressEvent.total,
loaded: progressEvent.loaded,
percent: parseFloat((progressEvent.loaded * 100 / progressEvent.total).toFixed(2))
}
this.updateAudioFileLoadingText$.next(fileUpdateInfo);
};
reader.onerror = (e) => {
console.error("The reader had a problem", e)
resolve(undefined);
}
reader.onabort = (e) => {
console.error("We aborted...why???", e)
resolve(undefined);
}
console.log("using reader to readAsArrayBuffer ");
reader.readAsArrayBuffer(file);
}, (e) => {
console.error(e)
});
});
let fileBufferArray = await readFilePromise;
console.log("fileBufferArray", fileBufferArray);
return fileBufferArray;
关于cordova - 使用 cordova-plugin-file 从 cordova (ionic) 中的 SD 卡读取文件作为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51069913/
在我的代码中,我想以编程方式选择一些变量,并以硬编码方式选择和重命名其他一些变量。我知道我可以通过 setnames() 分两步实现这一点。 ,但我很好奇如何一步完成。 我想我很接近它通过 .SDco
(添加了可重现的示例。) 我对 rnorm 函数有点困惑。 我期待 mean(rnorm(100,mean=0,sd=1))为0;和 sd(rnorm(100,mean=0,sd=1))为 1。但给出
我想创建一个包含多个不同列的数据框,其中包含平均值,之后 sd 显示在括号中。举个例子: df % group_by(Species) %>% summarise_all(list(~ s
我很想知道 SD 卡是否提供类似于“SMART”信息的内容,例如硬盘和 SSD。 我有兴趣在 Raspberry PI 中检查 SD 卡的健康信息,以进行预防性更换。我的写入需求非常高,对设备的物理访
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
是否可以通过编程将 sd 卡中存在的文件夹复制到存在同一 sd 卡的另一个文件夹?? 如果是这样,该怎么做? 最佳答案 该示例的改进版本: // If targetLocation does not
Link :I worked on based on this Link 我添加了这一行来查找尺寸(内部和外部)尺寸, return availableExternalMemorySize/(1024
我正在开发一个应用程序,其中我需要从 sd 卡 中选择一个图像并在 ImageView 中显示它。现在我希望用户通过单击一个按钮来减小/增加其宽度,然后将其保存回 sd 卡。 我已经完成了图像挑选并在
在我的应用程序中,我使用以下 Intent 获得了 SD 卡写入权限。如果用户从系统文件资源管理器中选择 sd 卡文件夹,那么我就有 sd 卡写权限。 Intent intent = new Inte
给定一个data.table library(data.table) DT = data.table(x=rep(c("b","a","c"),each=3), v=c(1,1,1,2,2,1,1,2
我正在构建一个程序,该程序对 pin0 上的模拟电压进行 10 次测量,并将其打印到日志文件中。当我尝试确保文件为空时,我遇到了这个问题。我正在使用 SD.remove() 来删除以前的日志文件。当我
在 Android 的 API > 19 中是否有任何方法可以获取可移动 SD 卡的路径? 与外部 SD 卡一样,我们有 Environment.getExternalStorageDirectory
我使用以下方法检查手机是否包含 SD 卡,但如果 SD 卡不可用,问题总是返回 true,请帮助我。 Boolean isSDPresent = android.os.Environment.getE
这是我将 512 字节块写入 SD 卡的代码。代码工作正常,但是当我检查一切正常时(通过阅读 SD 的响应),我读到 0xFF . 该值应该类似于(来自 SD 引用手册): ‘010’—Data ac
我有两个线程在 epoll 上运行。一个线程尝试与服务器建立 TCP 连接,使用 EPOLL_CTL_ADD 选项将套接字添加到 epoll-fd。 另一个线程负责等待添加到 epoll-fd 的 S
我正在使用 eclipse 模拟器,我想以编程方式将一些 mp3 从 /sdcard/songs 复制到 /sdcard/backup,有什么办法吗?非常感谢任何帮助和代码 fragment !谢谢!
我正在使用 Docker Desktop for Mac 版本 2.1.0.4。我有一个 Docker 容器,它是一个 Ubuntu 18.04 Linux VM,里面有 Yocto Build 系统
好的,这个黑莓应用程序在第一次安装和运行时创建了一个数据库。它安装在 SD 卡上。 当我删除应用程序时 - 这个文件仍然存在,我在删除应用程序时找不到任何删除它的方法。 有什么建议么? 最佳答案 应用
我有一张 SD 卡(或 SDHC 卡)通过 SPI 模式连接到微 Controller 。我正在使用 Chan’s FAT图书馆。我将来自 8192 字节缓冲区的数据写入其中(由于 RAM 不足,缓冲
我想在删除该选择中的最小值和最大值后,计算数据框中每一行在该选择列上的标准差。这是一个例子: set.seed(1) dat dat X1 X2 X3 X4 X5 sd 1 27 5
我是一名优秀的程序员,十分优秀!