Javascript Phonegap/Cordova-从临时目录以文本形式读取文件
我正在使用cordova媒体插件录制.wav音频样本 事实上,我能够记录它们,但我找不到获得已创建文件内容的方法 如果我这样做:Javascript Phonegap/Cordova-从临时目录以文本形式读取文件,javascript,android,ios,cordova,audio,Javascript,Android,Ios,Cordova,Audio,我正在使用cordova媒体插件录制.wav音频样本 事实上,我能够记录它们,但我找不到获得已创建文件内容的方法 如果我这样做: // Record audio // function recordAudio() { var src = "myrecording.wav"; var mediaRec = new Media(src, onSuccess, onError); // Record audio mediaRec.startRecord(); //
// Record audio
//
function recordAudio() {
var src = "myrecording.wav";
var mediaRec = new Media(src, onSuccess, onError);
// Record audio
mediaRec.startRecord();
// Stop recording after 10 sec
var recTime = 0;
var recInterval = setInterval(function() {
recTime = recTime + 1;
setAudioPosition(recTime + " sec");
if (recTime >= 3) {
clearInterval(recInterval);
mediaRec.stopRecord();
window.requestFileSystem(LocalFileSystem.TEMPORARY, 0, function(fs){
fs.root.getFile("myrecording.wav", {create: true, exclusive: false},
function(entry){
console.log("console loggin file");
console.log(entry);
}, function(){
alert("file create error");
});
}, null);
}
}, 1000);
}
我在控制台中获得以下条目:
{"isFile":true,"isDirectory":false,"name":"myrecording.wav","fullPath":"/myrecording.wav","filesystem":"<FileSystem: temporary>","nativeURL":"file:///Users/iamuser/Library/Developer/CoreSimulator/Devices/FC61A8C0-CF4B-4A1C-B22C-D8511B1B1707/data/Containers/Data/Application/716F442C-5076-4C69-9CA9-A1A8C2827898/tmp/myrecording.wav"}
{“isFile”:true,“isDirectory”:false,“name”:“myrecording.wav”,“fullPath”:“/myrecording.wav”,“filesystem”:“nativeURL”:file:///Users/iamuser/Library/Developer/CoreSimulator/Devices/FC61A8C0-CF4B-4A1C-B22C-D8511B1B1707/data/Containers/Data/Application/716F442C-5076-4C69-9CA9-A1A8C2827898/tmp/myrecording.wav"}
但这不是文件内容,如何从documents://目录中以文本形式检索文件
使用媒体插件将文件录制到documents://audio.wav 路径似乎是一个临时文件媒体插件,其描述是 提供录制和播放音频文件的功能 所以我想它不会给你原始数据。但是,由于您知道音频文件的URI,请使用文件插件从中获取数据 更新 如果要上载文件,请参阅 如果您希望将音频文件作为Base64编码字符串,请参阅 这是一段相当长的代码,其中包含AngularJS,因此我在这里为您总结了基本部分
function OnFileEntry(file){
var reader = new FileReader();
reader.onloadend = function(evt) {
var image = evt.target.result;
var base64Data = image.replace(/^data:audio\/mpeg;base64,/, "");
base64Data += base64Data.replace('+', ' ');
};
reader.readAsDataURL(file);
}
function OnGetFile(fileEntry){
fileEntry.file(OnFileEntry, fail);
}
function OnFileSystem(fileSystem){
fileSystem.root.getFile(recordName, null, OnGetFile, fail);
}
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, OnFileSystem, fail);
这里需要更改的是recordName以匹配src属性的值
这对你来说够了吗,或者还有什么我可以帮你的吗?是的,我的目的是使用文件插件。。。但是背后的logci是什么,我怎样才能在temp文件夹中读取它呢?那么你在这里想要实现什么呢?您是要将文件内容发送到Internet、播放音频文件还是做什么?使用媒体插件存储后,它将存储在手机的硬盘上,并可以从那里以任何方式处理,对吗?我录制它,然后我想获取内容。。。该文件记录在documents://audio.wav 就像我看到的tmp文件一样,很抱歉我没听清你的话,朋友。那么现在的问题是如何将文件从文件系统读取到内存?如果是这样的话,我可以为您提供一个例子。请更好地检查问题标题“如何获取文件内容=以文本形式读取文件”,并且文件是录制的音频,是的,请我需要一些提示/示例我在这里找不到任何东西:/谢谢