使用Cordova处理录制应用并使用new Media
进行录制。我还使用cordoba-file-plugin
创建目录等。所以当应用初始化时我正在运行
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fs){
app.root = fs;
}, function(error){
console.log(error);
});
然后我运行此代码:
app.root.root.getDirectory('appname', {create:true}, function(dirEntry){
dirEntry.getDirectory('recordings', {create:true}, function(subDirEntry) {
app.recordings = subDirEntry;
}, function(error){
console.log(error);
});
}, function(error){
console.log(error);
});
然后我有了重新编码脚本,我想将文件直接保存到我为这个应用程序创建的目录app.recordings
。但没有任何表现。
var path = app.recordings.nativeURL;
var filename = path + "recording-" + new Date().getTime() + ".mp3";
var mediaRec = new Media(filename, app.services.audio.success, app.services.audio.error);
mediaRec.startRecord();
mediaRec.stopRecord();
我一直在根目录中获得一个tmprecording-12351834581925.3gp。
答案 0 :(得分:2)
准备好设备
if(device.platform == "iOS"){
app.path = cordova.file.tempDirectory;
app.extension = ".wav";
app.mimeType = "audio/wav";
} else if(device.platform == "Android"){
app.path = cordova.file.externalRootDirectory;
app.extension = ".amr";
app.mimeType = "audio/amr";
}
window.resolveLocalFileSystemURL(app.path, function(fileSystem){
fileSystem.getDirectory("AppName", {create:true},function(dirEntry){
dirEntry.getDirectory("Recording", {create:true} , function(subEntry){
app.recording = subEntry.nativeURL;
}, function(error){
console.log(error);
});
}, function(error){
console.log(error);
});
},function(error){
console.log(error);
});
然后录制
var filename = app.recording + new Date().getTime() + app.extension;
var mediaRec = new Media(filename, success, error);
这些文件现在保存在我现在可以控制和访问文件的首选位置。
在录音中读取文件
window.resolveLocalFileSystemURL(app.recording ,function (fileSystem) {
var reader = fileSystem.createReader();
reader.readEntries(function (entries) {
console.log(entries);
//loop all entries
}, function(error){
console.log(error);
});
}