Cordova媒体捕获-查找音频文件的持续时间

Cordova媒体捕获-查找音频文件的持续时间,cordova,audio,telerik,Cordova,Audio,Telerik,我正在写一个应用程序,它将接收音频文件,然后上传到Teleriks everlive服务。我想阻止用户上传任何超过20秒的音频文件 但经过测试,似乎无论音频文件的持续时间如何,“data.duration”似乎总是返回0,因此无论上传的是什么文件 这是我正在使用的插件: 这是我的代码: var el = new Everlive('app-id-here'); //Taken away ID for stackoverflow var options = { f

我正在写一个应用程序,它将接收音频文件,然后上传到Teleriks everlive服务。我想阻止用户上传任何超过20秒的音频文件

但经过测试,似乎无论音频文件的持续时间如何,“data.duration”似乎总是返回0,因此无论上传的是什么文件

这是我正在使用的插件:

这是我的代码:

    var el = new Everlive('app-id-here'); //Taken away ID for stackoverflow

    var options = {
        fileName: 'testaudio.mp3',
        mimeType: 'audio/mpeg3'
    };

    function formatSuccess(data) {
        if (data.duration > 20) {
            alert("The audio file you have used is longer than 20 seconds.");
        } else {
            alert(data.duration);
            el.files.upload(capturedFiles[0].fullPath, options)
                .then(function () {
                    alert('success');
                }, function (err) {
                    alert(JSON.stringify(err));
                });
        }

    }

    function formatFail() {
        alert("Error accessing file data");

    }

    capturedFiles[0].getFormatData(formatSuccess, formatFail);

上次我玩这个时,getDuration只在播放媒体文件时起作用。从我的Apache Cordova API手册(www.cordovacookbook.com)中:

应用程序可以使用
getDuration
确定媒体文件的长度,如下例所示:

console.log('Duration: ' + theMedia.getDuration() + ' seconds');

如果音频剪辑当前未播放,
getDuration
将报告-1。与
getCurrentPosition
不同,
getDuration
方法将返回剪辑长度,即使播放暂停。

上次我使用此方法播放时,getDuration仅在播放媒体文件时起作用。从我的Apache Cordova API手册(www.cordovacookbook.com)中:

应用程序可以使用
getDuration
确定媒体文件的长度,如下例所示:

console.log('Duration: ' + theMedia.getDuration() + ' seconds');

如果音频剪辑当前未播放,
getDuration
将报告-1。与
getCurrentPosition
不同,
getDuration
方法将返回剪辑长度,即使播放暂停。

您找到解决方案了吗?我的get duration也得到了-1。你找到了解决这个问题的方法吗?我的get持续时间也为-1。