Cordova媒体捕获-查找音频文件的持续时间
我正在写一个应用程序,它将接收音频文件,然后上传到Teleriks everlive服务。我想阻止用户上传任何超过20秒的音频文件 但经过测试,似乎无论音频文件的持续时间如何,“data.duration”似乎总是返回0,因此无论上传的是什么文件 这是我正在使用的插件: 这是我的代码: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
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。