2016-07-08 4 views
1

私はオーディオファイルを取り込んでそれをTeleriks永遠のサービスにアップロードするアプリを書いています。ユーザーが20秒以上のオーディオファイルをアップロードしないようにしたい。Cordova Media Capture - オーディオファイルの長さを確認

しかし、テスト後、オーディオファイルの長さに関わらず、 "data.duration"は常に0を返すように見えるので、ファイルが何であってもアップロードされます。メディアファイルが再生されているとき

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); 

答えて

0

私はこれで最後に再生時間は、getDurationだけ働いた:https://github.com/apache/cordova-plugin-media-capture

これは私のコードです:

この

は、私が使用していますプラグインです。アプリケーション

次の例に示すようにgetDurationを使用したメディアファイルの長さを決定することができます:私のApache CordovaのAPIクックブック(www.cordovacookbook.com)から

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

getDurationが報告されます-1オーディオクリップが現在再生されていない場合getCurrentPositionとは異なり、再生が一時停止してもgetDurationメソッドはクリップの長さを返します。

+0

これについての解決策をお探しですか?私はまた、期間を取得するために-1を得ています。 – Mikethetechy

関連する問題