यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।
ऑडियो और समय सीमा के साथ वीडियो कैसे रिकॉर्ड करें
उद्देश्य। डिवाइस के कैमरे से एक वीडियो रिकॉर्ड करना, वैकल्पिक रूप से ऑडियो के साथ, अवधि को
सीमित करते हुए और गुणवत्ता चुनते हुए, और .mp4 फ़ाइल का पथ प्राप्त करना।
उपयोग की गई APIs
Camera.captureMode(Preview) — कैप्चर मोड:PHOTO,MUTED_VIDEO(बिना आवाज़ का वीडियो),AUDIO_VIDEO(वीडियो + ऑडियो)।Camera.videoTimeLimit(int) — रिकॉर्डिंग की सीमा सेकंड में;0= कोई सीमा नहीं।Camera.videoQuality(AVQuality) —HIGH,MEDIUM(Cameraका डिफ़ॉल्ट),LOW। प्रत्येक मान fps, वीडियो/ऑडियो दर और स्टीरियो परिभाषित करता है।Camera.shot()→String— रिकॉर्डिंग UI शुरू करता है और.mp4का पथ लौटाता है (याnull)।PhotoPicker(Preview type)— जबcameraType == PICKERहो तब उपयोग की जाने वाली UI; इसमें सार्वजनिक फ़ील्डvideoTimeLimitऔरvideoQualityहैं जिन्हेंshot()पहले से हीCameraसे भर देता है।
नोट।
PhotoPickerमें, वीडियो रिकॉर्ड करते समय, फ़ाइल/sdcard/<timestamp>.mp4में सहेजी जाती है।videoTimeLimitpicker के समय लेबल को उलटी गिनती करने पर मजबूर करता है।AUDIO_VIDEOमें रिकॉर्डिंग में ऑडियो शामिल होता है (GdxRecorder.startVideoWithAudio),MUTED_VIDEOमें नहीं। वीडियो मोड वाले iOS में,shot()OS के मूल कैमरे का उपयोग करते हुएvideoTimeLimit/videoQualityपास करता है।
पूर्ण उदाहरण (कॉपी करें, पेस्ट करें और चलाएँ)
package com.exemplo;
import dev.crossfly.ui.*; // Window, Component, Button, Label, UIConstants
import dev.crossfly.ui.layout.*; // VerticalLayout
import dev.crossfly.device.*; // Camera, Camera.AVQuality
/** चलाने योग्य मुख्य स्क्रीन। launcher (classname) की ओर संकेत करें और चलाएँ: gradlew :lwjgl3:run */
public class MainWindow extends Window
{
@Override
public void onShow() throws Exception
{
super.onShow();
setLayout(new VerticalLayout());
Label resultado = new Label("");
add(LAY_AUTO, resultado);
Button acao = new Button("Gravar vídeo");
acao.onAction(c ->
{
new Thread(() ->
{
Camera cam = new Camera();
cam.cameraType = UIConstants.CameraType.PICKER; // CrossFly की रिकॉर्डिंग UI
cam.captureMode = UIConstants.Preview.AUDIO_VIDEO; // ऑडियो सहित वीडियो (बिना आवाज़ के लिए MUTED_VIDEO का उपयोग करें)
cam.videoQuality = Camera.AVQuality.HIGH; // HIGH | MEDIUM | LOW
cam.videoTimeLimit = 30; // 30s; 0 = कोई सीमा नहीं
String mp4 = cam.shot(); // .mp4 का पाथ, या रद्द होने पर null
Component.onUI(() -> // paint thread के बाहर लौटता है
resultado.setText(mp4 != null ? "Vídeo: " + mp4 : "Cancelado"));
}).start();
});
add(LAY_AUTO, acao);
}
}
नीचे का अंश केवल मुख्य भाग दिखाता है। चलाने के लिए, इसे ऊपर दिए गए
MainWindowढाँचे में रखें।
न्यूनतम अंश
// स्रोत में सत्यापित: Camera.java (captureMode/videoTimeLimit/videoQuality, shot()); PhotoPicker.java (startRecording, stopRecording)
import dev.crossfly.device.*; // Camera, Camera.AVQuality
import dev.crossfly.ui.*; // Component, UIConstants.CameraType/Preview
new Thread(() -> {
Camera cam = new Camera();
cam.cameraType = UIConstants.CameraType.PICKER; // CrossFly की रिकॉर्डिंग UI
cam.captureMode = UIConstants.Preview.AUDIO_VIDEO; // ऑडियो सहित वीडियो (बिना आवाज़ के लिए MUTED_VIDEO का उपयोग करें)
cam.videoQuality = Camera.AVQuality.HIGH; // HIGH | MEDIUM | LOW
cam.videoTimeLimit = 30; // 30s; 0 = कोई सीमा नहीं
String mp4 = cam.shot(); // .mp4 का पाथ, या रद्द होने पर null
Component.onUI(() -> { // paint thread के बाहर लौटता है
if (mp4 != null)
usarVideo(mp4);
});
}).start();
और गहराई में जाएँ
- कैमरा गाइड: डिवाइस का कैमरा · Widget: PhotoPicker
- संबंधित रेसिपी: tirar-foto.md
क्या यह पृष्ठ उपयोगी था?प्रतिक्रिया के लिए धन्यवाद!