2

我正在使用 Media.getDuration() 函数来获取音频文件的持续时间,但我总是得到 -1 作为响应。

如果我使用 build.phonegap.com 构建,这可以正常工作

但是每当我使用 cli 构建时,getDuration 就不起作用。

以下是重现此问题的简单步骤:

命令行界面:

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>
4

3 回答 3

0

好吧,我得到了解决方案。我默认使用旧版本的媒体插件(我认为是 2.0)我使用以下命令删除了旧插件:

cordova plugin remove cordova-plugin-media

然后我使用以下命令安装了相同插件的最新版本:

cordova plugin add cordova-plugin-media@2.2.0

然后我又做了一次,它就像魅力一样。

谢谢

于 2016-02-20T20:39:54.667 回答
0

触发 getDuration() 时我总是得到 -1。这是我从离子论坛找到的解决方案参考

getMediaDuration(path): Promise<any> {
    return new Promise((resolve, reject) => {
      let audio: MediaObject = this.media.create(path);
      audio.seekTo(1);
      audio.onStatusUpdate.subscribe(status => {
        setTimeout(()=>{
          resolve(audio.getDuration());
          audio.release();
        }, 500);

      }); 
    });
  }

标签: ionic 4、cordova-plugin-media、getDuration()、media.getDuration

于 2020-04-22T05:59:26.913 回答
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 plugin add cordova-plugin-media@2.3.0
于 2016-08-12T13:57:25.643 回答