以下は私のコードです。今は動作しますが、次の行を削除すると 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;
}