我创建了一个Cordova项目,该项目使用特定设备的内置麦克风录制多个声音文件(华硕Memo Pad 7 - 运行Android 4.4.2)。为此,我添加了插件org.apache.cordova.media并编写了一些代码来记录文件。我写的代码如下。当我单击录制按钮时,它会开始录制过程,当我单击停止按钮时,它会停止录制。这一切都在设备上正常工作,如果我在录制时检查指定文件夹中的设备上的文件(" test / testsounds / test1.wav")我可以看到声音很好。问题是如果我将此设备连接到台式计算机并导航到同一文件夹,那里没有.wav文件。当我在recordAudio()函数中创建声音文件时,我尝试更改声音文件的扩展名为.mp3和.amr,但仍然没有运气。
开始记录功能
var mediaRec;
$('.startRec').click(function(){
recordAudio("test1", 1000);
});
$('.stopRec').click(function(){
stopRecord();
});
function recordAudio(filename, recTime) {
var src = "test/testsounds/"+filename+".wav";
mediaRec = new Media(src,
// success callback
function() {
console.log("recordAudio():Audio Success");
},
// error callback
function(err) {
console.log("recordAudio():Audio Error: "+ err.code);
});
// Record audio
mediaRec.startRecord();
if (recTime != 0){
setTimeout(function(){
mediaRec.stopRecord();
},recTime);
}
}
结束记录功能
function stopRecord(){
mediaRec.stopRecord();
mediaRec.release();
}
*修改
我使用http://github.com/torrmal/cordova-simplefilemanagement使用此代码
创建文件夹结构var a = new DirManager();
a.create_r('test/testsounds',Log('created successfully'));
这将创建我保存声音文件的目的地。上面的代码在sdcard下创建了文件夹结构,因此它将是" / sdcard / test / testsounds /"。当我使用ESFileExplorer查看设备时,这样可以正常保存在该文件夹结构中的声音文件,但在Windows资源管理器中查看桌面时却没有。
* EDIT2
奇怪的是,如果我进入设备上的ES文件资源管理器并将文件从一个目的地剪切并粘贴到另一个目的地,那么它们将显示在Windows资源管理器中。我的问题是我需要以编程方式执行此操作。