0

以下は私のコードです。今は動作しますが、次の行を削除すると alert(currentIntervalPosition+"__1"); getIncidentTime 関数から、コードが機能しないため、その行を削除する必要があります。コードが機能しないということは、initializeVideoInformation 関数で、getIncidentTime 呼び出しの後、変数 currentIntervalPosition が未定義であることを意味します。返されたデータにアクセスするにはどうすればよいですか?

   function initializeVideoInformation(json) {
        $.each(json, function(idx, obj) {
            if (obj) {
                var result = obj.timeStamp.split(" ");
                var dateFolder = result[0].replace(/-/g, "_");
                var videoName = result[1].substr(0, 2);
                var videoFileWithPath =  "/video/"+dateFolder+"/"+videoName;
                var syncFile = videoFileWithPath + ".sync";
                videoFileWithPath += ".mp4";

                var currentIntervalPosition = getIncidentTime(syncFile, result[1]);
                getVideoScreenShot(videoFileWithPath, currentIntervalPosition, idx);
            }
        });
    }

    function getIncidentTime(syncFile, incidentTime) {
        var currentIntervalPosition;
        $.get(syncFile, function(json) {
            var fileContent = JSON.parse(json);
            var fps = fileContent.fps;
            var frames = fileContent.frames;
            var syncData = [];

            for (var index=0; index<frames.length; index++) {
                syncData[index] = timeToMillies(frames[index].t);
            }

            var jumpTime = timeToMillies(incidentTime);
            var BinaryIndex = BinarySearch(jumpTime, syncData);
            var currentTime = (1 + BinaryIndex) / 25 + 0.0001;    // fps

            var frameNo = Math.floor(25*currentTime) - 1;   //fps
            currentIntervalPosition = syncData[frameNo];
        });

        alert(currentIntervalPosition+"__1");
        return currentIntervalPosition;
    }
4

0 に答える 0