getFrameData() {
    const { scenes, segments, frame, frameData } = this;
    const isFirst = this.isFirst();
    const isLast = this.isLast();

    frameData.frame = frame;
    frameData.isFirst = isFirst;
    frameData.isLast = isLast;
    frameData.sceneStart = false;
    frameData.sceneEnd = false;
    frameData.sceneOver = false;

    // set the scene to start and end
    for (let i = 0; i < scenes.length; i++) {
      const { sceneStart, sceneEnd } = scenes[i];

      if (sceneStart === frame) {
        frameData.sceneStart = true;
        // break;
      }

      if (sceneEnd === frame) {
        frameData.sceneEnd = true;
        // break;
      }

      if (sceneEnd + 1 === frame) {
        frameData.sceneOver = true;
        // break;
      }
    }

    // set the current scenesIndex and type
    for (let i = 0; i < segments.length; i++) {
      const { start, end, total, type, scenesIndex } = segments[i];

      if ((frame > start && frame <= end) || isFirst) {
        frameData.type = type;
        frameData.scenesIndex = scenesIndex;
        frameData.progress = type === 'transition' ? (frame - start) / total : 0;
        return frameData;
      }
    }

    return null;
  }
Get the data of the current frame.
@return {FrameData} the data of the current frame
@public