Cordova Media Capture - 查找音频文件的持续时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cordova Media Capture - 查找音频文件的持续时间相关的知识,希望对你有一定的参考价值。

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

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

这是我正在使用的插件:https://github.com/apache/cordova-plugin-media-capture

这是我的代码:

    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 Cookbook(www.cordovacookbook.com):

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

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

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

以上是关于Cordova Media Capture - 查找音频文件的持续时间的主要内容,如果未能解决你的问题,请参考以下文章

Cordova Media Capture CaptureVideoOptions 持续时间不起作用

调用手机插件集合-录音

Oracle MAF:使用 cordova 插件时出现部署错误

未找到处理 Intent act=android.media.action.IMAGE_CAPTURE 的 Activity

修改 IOS 上 Cordova Capture 插件的视频质量

Media Foundation Capture - 如何检测真正的原生输入格式