我正在使用Media.getDuration()函数来获取音频文件的持续时间,但我总是得到-1作为响应。
如果我使用build.phonegap.com
构建,这可以正常工作但每当我使用cli构建时,getDuration都无效。
以下是重现此问题的简单步骤:
CLI:
cordova start my_project
cordova plugin add cordova-plugin-media
cordova platform add android
cordova build android
WWW / index.html中
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Media Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
function deviceready()
{
var my_media = new Media('http://web.com/mp3');
my_media.play();
console.log(my_media.getDuration()); // this will produce -1
}
</script>
</head>
<body>
</body>
</html>
答案 0 :(得分:0)
好吧我得到了解决方案。 我默认使用旧版媒体插件(我认为2.0) 我使用以下命令删除旧插件:
cordova plugin remove cordova-plugin-media
然后我使用以下命令安装了同一插件的最新版本:
cordova plugin add cordova-plugin-media@2.2.0
然后我再次推它,它就像魅力一样。
由于
答案 1 :(得分:0)
var ruta="/android_asset/www/sounds/M.mp3";
$scope.audiofile = new Media(ruta);
$scope.audiofile.play();
var timerDur = setInterval(function () {
$scope.dur = $scope.audiofile.getDuration();
if ($scope.dur > 0) {
clearInterval(timerDur);
console.log($scope.dur + " sec");
}
}, 1);
cordova插件删除 cordova-plugin-media
然后我使用以下命令安装了同一插件的最新版本:
cordova plugin add cordova-plugin-media@2.3.0
答案 2 :(得分:0)
当触发getDuration()时,我总是得到-1。这是我从ionic forum
找到的解决方案参考Register((int id) => { Console.WriteLine($"logged in user with id {id}!"; return true; }, () => { Console.WriteLine("Sign out callback called."); return true; });
标签:离子4,cordova-plugin-media,getDuration(),media.getDuration