1

在上传到服务器之前,我需要知道通过 PhoneGap 捕获的视频的持续时间。MediaFile.getFormatData的文档有点含糊,似乎不起作用。

我已经能够成功捕获和上传视频,所以所有这些都可以正常工作,只是持续时间部分不行。

我究竟做错了什么?

在装有 iOS 5.1.1 的 iPhone 4 上运行

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 回答