Wenn ich MediaRecorder zum Aufzeichnen eines Videos verwende, möchte ich die Videogröße einstellen. Aber die Kamera getParameters() liefert die getSupportedVideoSizes ist null und die getSupportedPreviewSizes ist in Ordnung, es gibt 1920x1088,1280x960 zurück. 1280x720,960x540,720x540,720x480,640x480,352x288,320x240,176x144. Wie auch immer, wenn ich den Wert videoSize von MediaRecorder einstelle, wird der Bildschirm der gebundenen SurfaceView nach ein paar Sekunden eingefroren, wenn ich die Aufnahme starte. Also, was soll ich tun?Wie setze ichVideoSize, wenn getSupportedVideoSizes Null zurückgibt
0
A
Antwort
1
My leidet Abhilfe war:
public void setVideoSize(int width, int height) {
// Just set Preview size...
Camera.Parameters params = getParameters();
List<Camera.Size> sizes = params.getSupportedPreviewSizes();
Camera.Size preferred = params.getPreferredPreviewSizeForVideo();
if (preferred == null) {
preferred = sizes.get(0);
}
Camera.Size optimalPreview = Util.getOptimalPreviewSize(mContext, sizes,
width, height);
setPreviewSize(optimalPreview.width, optimalPreview.height);
}
Wo Util.getOptimalPreviewSize war:
/**
* Returns the optimal preview size for photo shots
*
* @param currentActivity
* @param sizes
* @param widthImage
* @param heightImage
* @return
*/
public static Size getOptimalPreviewSize(Activity currentActivity,
List<Size> sizes, int widthImage, int heightImage) {
final double ASPECT_TOLERANCE = 0.05;
double targetRatio = 0;
if (sizes == null) return null;
Camera.Size optimalSize = null;
double minDiff = Double.MAX_VALUE;
// Recupero le dimensioni dello schermo per confrontare le dimensioni della
// preview con quelle dello schermo, in modo tale che a video veda esattamente ciò che poi
// andrò a fotografare
int widthScreen = currentActivity.getWindow().getDecorView().getWidth();
int heightScreen = currentActivity.getWindow().getDecorView().getHeight();
targetRatio = (double) widthImage/heightImage;
if (Util.getDisplayRotation(currentActivity) == 0 || Util.getDisplayRotation(currentActivity) == 180) {
int temp = heightScreen;
heightScreen = widthScreen;
widthScreen = temp;
}
int targetHeight = heightScreen;
for (Camera.Size size : sizes) {
double ratio = (double) size.width/size.height;
if (Math.abs(ratio - targetRatio) > ASPECT_TOLERANCE) continue;
if (Math.abs(size.height - targetHeight) < minDiff) {
if (size.width <= widthScreen && size.height <= heightScreen) {
optimalSize = size;
minDiff = Math.abs(size.height - targetHeight);
}
}
}
if (optimalSize == null) {
minDiff = Double.MAX_VALUE;
for (Camera.Size size : sizes) {
if (Math.abs(size.height - targetHeight) < minDiff) {
optimalSize = size;
minDiff = Math.abs(size.height - targetHeight);
}
}
}
return optimalSize;
}
mit der Drehung der Kamera Nach (nicht auf dem Bildschirm !!) und die Dimension des Bildes/Video, um es zu erfassen wird die beste Vorschau Größe von Video/Bild gefunden
0
Schließlich löse ich das Problem, die Vorschau texturview ist in der Spitze meiner Tätigkeit, gibt es einige andere behi nd. Ich setze die Breite und Höhe der Texturansicht in Java-Code, aber wenn ich dies im XML-Format mit dp einstelle, ist alles in Ordnung, also wie ist die Beziehung zwischen der Vorschautexturansicht (Breite und Höhe) und den Videoaufnahmen (Breite und Höhe)
Verwandte Themen
- 1. Wenn JavaScript null undefined zurückgibt?
- 2. Wenn Groovys "metaClass" null zurückgibt
- 3. ASP.NET Ajax, das Null zurückgibt
- 4. Funktion anwenden, die NULL zurückgibt
- 5. Java-Objektkonstruktor, der "null" zurückgibt
- 6. Codeigniter: Set_uederdata, die NULL zurückgibt
- 7. fügen Sie Informationen zur Eingabe hinzu, wenn AJAX null zurückgibt
- 8. Wie überprüft man, ob mysql null/leer zurückgibt
- 9. Vb Funktion, die Null zurückgibt
- 10. NullReferenceException, wenn Funktion zurückgibt
- 11. Tableview stürzt ab, wenn JSON null zurückgibt. Ios
- 12. Wie setze ich null in vorbereiteter Anweisung, wenn der Wert Null ist
- 13. Wie setze ich eine Variable auf NULL in PHP zurück?
- 14. Setze Variable auf Null Javascript
- 15. Wie setze ich eine Variable auf false, wenn mindestens ein Element in einer Schleife false zurückgibt?
- 16. Hibernate-Spalte Formel, die Null zurückgibt
- 17. PHPUnit-Stub-Methode, die NULL zurückgibt?
- 18. Realm-Objekt, das Null zurückgibt (Swift)
- 19. Was bewirkt, dass das FederatedAuthentication.SessionAuthenticationModule NULL zurückgibt?
- 20. WCF-Service-Methode, die Null zurückgibt
- 21. JAX-RS-Client zurückgibt Einheit von null
- 22. Warum Xml.newPullParser() in Android Test null zurückgibt?
- 23. Realm LinkingObjects zweite Ebene, die Null zurückgibt
- 24. Wie kann ich feststellen, ob ein Selektor null zurückgibt?
- 25. Wie überprüfe ich, ob es eine Null zurückgibt?
- 26. Wie errno erhalten, wenn epoll_wait EPOLLERR zurückgibt?
- 27. MVC4 Aktion, die JsonResult ohne Null zurückgibt
- 28. Was bewirkt, dass Android ContentResolver.query() null zurückgibt?
- 29. Abhängigkeitseigenschaft WPF, die immer NULL zurückgibt
- 30. leerer String, wenn null