媒体记录cordova未发布该文件

时间:2016-12-13 16:26:28

标签: cordova cordova-plugins cordova-media-plugin

插件媒体未发布记录。它会将临时文件保存在我的设备的根目录中,并且不会创建该文件。

这是开始录制的方式:

var src = 'RaptorV4/Audio/Record.mp3';

App.mediaRec = new App.Media(src, function () {
            //ok
        }, function () {
            //failed
            if (!NODEWEBKIT) {
                App.alert('record failed for ' + App.currentRecfullPath);
            } else {
                App.alertify('error', 'record failed for ' + App.currentRecfullPath);
            }

            App.db.deleteFile(App.currentRecFullPath);
            App.stopRecAudio();
        }, function () {
            //changed
        });
App.mediaRec.startRecord();

这就是我获取文件大小的方式:

 App.mediaRec.stopRecord();
        App.mediaRec.release();

    var fileSize = $.Deferred();
    window.resolveLocalFileSystemURL(cordova.file.externalRootDirectory, function (fs) {
        fs.getFile(fullPath, {create: false}, function (file) {
            file.file(function(f){fileSize.resolve(+f.size);return;});            
        });
    });

 $.when(fileSize).done(function(size){
        console.warn(size);
}

大小始终为0,我认为这是因为我保存和获取文件的方式。

1 个答案:

答案 0 :(得分:0)

您必须先添加Cordova文件系统插件才能创建新条目。

cordova plugin add org.apache.cordova.file

创建记录文件并设置全局变量fileURL和audioRecord:

//Prepares File System for Audio Recording
audioRecord = 'record.wav';
onDeviceReady();

function onDeviceReady() {
    window.requestFileSystem(1, 0, gotFS, fail);
}

function gotFS(fileSystem) {
    fileSystem.root.getFile(audioRecord, {
        create: true,
        exclusive: false
    }, gotFileEntry, fail);
}

function gotFileEntry(fileEntry) {
    fileURL = fileEntry.toURL();
}

开始和停止记录:

 record = new Media(audioRecord,
            // success callback
            function () {
                console.log("recordAudio():Audio Succes: ");
            },

            // error callback
            function (err) {
                console.log("recordAudio():Audio Error: " + err.code);
            });

        // Record audio
        record.startRecord();
        // Wait
        record.stopRecord();