1

サーバーにアップロードする前に、PhoneGapを介してキャプチャされたビデオの長さを知る必要があります。MediaFile.getFormatDataのドキュメントは少しあいまいで、機能していないようです。

私はビデオをうまくキャプチャしてアップロードすることができたので、それはすべて機能していますが、継続時間の部分だけは機能していません。

私は何が間違っているのですか?

iOS5.1.1を搭載したiPhone4で実行

navigator.device.capture.captureVideo(function(mediaFile) {
        if(mediaFiles.length == 1) {
            $('#video_url').val(mediaFiles[0]);
            var profileVideo = document.getElementById('profile-video');
            profileVideo.src = mediaFiles[0].fullPath;

            var formatData;
            mediaFiles[0].getFormatData(function(data) {
                formatData = data;
            });

            if(formatData.duration > 30) {
                $('#infoMessage').html("Your video is longer than the allowed 30 seconds. Please record a new video. You can trim your video after it's been recorded.")
            }
        }
    }, function(error) {
    }, null);
4

2 に答える 2

2

同期して非同期コードを呼び出そうとしています。代わりに次のようにしてみてください。

mediaFiles[0].getFormatData(function(data) {
    if(data.duration > 30) {
        $('#infoMessage').html("Your video is longer than the allowed 30 seconds. Please record a new video. You can trim your video after it's been recorded.")
    }
});
于 2012-09-21T01:41:56.843 に答える
1

これを試して:

navigator.device.capture.captureVideo(function(mediaFiles) {
            mediaFiles[0].getFormatData(function(data) {
                if(data.duration > 30) {
                    alert('Your video is longer than the allowed 30 seconds.');
                }
            });
    }, function(error) { alert('An error occured'); }, null);
于 2012-11-26T16:14:10.517 に答える