【问题标题】:Media record cordova is not releasing the file媒体记录科尔多瓦没有发布文件
【发布时间】:2016-12-13 16:26:27
【问题描述】:

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

这是开始录制的方式:

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,我认为这是因为我保存和获取文件的方式。

【问题讨论】:

  • 请给我看你的代码..你是怎么做到的。谢谢
  • 帖子已编辑。你能帮帮我吗?
  • 当然,兄弟让我再次查看您的问题。感谢回复

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


【解决方案1】:

您必须先添加 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();

【讨论】:

  • 如果您现在有任何问题评论,请查看我的回答。谢谢
  • 但我的应用程序文件应该在设备的根目录中,更改后它将保存在 android 文件夹中。用户必须能够轻松访问录音
  • 为此,我使用 cordova.file.externalRootDirectory 作为目录并使用 window.resolveLocalFileSystemURL 来获取目录。我认为这就是问题所在。目录中的一些冲突
  • 这将在您设备内存的根目录中创建文件。我已经在我的安卓设备上测试过了。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-17
  • 2013-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-08
相关资源
最近更新 更多