Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I ran in to this error (-16 on start) and found out it was caused by using an unsupported resolution.</p> <p>First you have to get the optimal size from the supported sizes </p> <pre><code>Parameters params = camera.getParameters(); List&lt;Size&gt; sizes = params.getSupportedPreviewSizes(); optimalSize = getOptimalPreviewSize(sizes, width, height); params.setPreviewSize(optimalSize.width, optimalSize.height); </code></pre> <p>Then make sure you set both preview and video to the same size (if they were different in my experience preview would freeze when video record started):</p> <pre><code>mediaRecorder.setVideoSize(optimalSize.width, optimalSize.height); </code></pre> <p>(sample code for getOptimalPreviewSize is from android sdk)</p> <pre><code>private Size getOptimalPreviewSize(List&lt;Size&gt; sizes, int w, int h) { final double ASPECT_TOLERANCE = 0.1; double targetRatio = (double) w / h; if (sizes == null) return null; Size optimalSize = null; double minDiff = Double.MAX_VALUE; int targetHeight = h; // Try to find an size match aspect ratio and size for (Size size : sizes) { double ratio = (double) size.width / size.height; if (Math.abs(ratio - targetRatio) &gt; ASPECT_TOLERANCE) continue; if (Math.abs(size.height - targetHeight) &lt; minDiff) { optimalSize = size; minDiff = Math.abs(size.height - targetHeight); } } // Cannot find the one match the aspect ratio, ignore the requirement if (optimalSize == null) { minDiff = Double.MAX_VALUE; for (Size size : sizes) { if (Math.abs(size.height - targetHeight) &lt; minDiff) { optimalSize = size; minDiff = Math.abs(size.height - targetHeight); } } } return optimalSize; } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload