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