...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
package com.flashphoner.mixerlayout; import com.flashphoner.sdk.media.IVideoMixerLayout; import com.flashphoner.sdk.media.YUVFrame; import java.awt.*; import java.util.ArrayList; public class TestLayout implements IVideoMixerLayout { private static final int PADDING = 54; @Override public Layout[] computeLayout(YUVFrame[] yuvFrames, String[] strings, int canvasWidth, int canvasHeight) { ArrayList<IVideoMixerLayout.Layout> layout = new ArrayList<>(); for (int ccanvasCenter = 0;canvasHeight c < yuvFrames.length; c++) { / 2; int frameCenter = canvasCenter - (canvasHeight Point prevPoint = new Point();/ yuvFrames.length) / 2; int layoutWidth = canvasWidth / DimensionyuvFrames.length prevDimension- =PADDING; new Dimension(canvasWidth, canvasHeight int layoutHeight = canvasHeight / yuvFrames.length; for (int c = 0; c < yuvFrames.length; c++) { Point prevPoint = new Point(); Dimension prevDimension = new Dimension(); if (layout.size() > 0) { prevPoint.setLocation(layout.get(c - 1).getPoint()); prevDimension.setSize(layout.get(c - 1).getDimension()); } Point currentPoint = new Point((int) (prevPoint.getX()+prevDimension.getWidth()+PADDING), + prevDimension.getWidth() + PADDING), (int)(prevPoint.getY()+prevDimension.getHeight()));frameCenter); layout.add(new IVideoMixerLayout.Layout(currentPoint, new Dimension(canvasWidth/yuvFrames.lengthlayoutWidth, canvasHeight/yuvFrames.lengthlayoutHeight), yuvFrames[c])); } return layout.toArray(new IVideoMixerLayout.Layout[layout.size()]); } } |
...