वीडियो रिकॉर्ड करना
CameraX से वीडियो प्राप्त करें।
वीडियो रिकॉर्ड करना, CoddyKit पर Android Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Android Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Android Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
CameraX से वीडियो रिकॉर्ड करना
CameRX, Recorder द्वारा समर्थित VideoCapture उपयोग-केस के माध्यम से वीडियो रिकॉर्ड करता है। इस पाठ में आप वीडियो कैप्चर सेट अप करेंगे, रिकॉर्डिंग शुरू और बंद करेंगे, और उसे ऑडियो सहित गैलरी में सहेजेंगे।
यह प्रक्रिया फ़ोटो जैसी ही है, लेकिन इसमें लंबे समय तक चलने वाला Recording सत्र जुड़ता है, जिसे आप शुरू करके बाद में बंद करते हैं।
Recorder और गुणवत्ता
सबसे पहले आप एक Recorder बनाते हैं, जो एन्कोडिंग और गुणवत्ता निर्धारित करता है। QualitySelector आपको लक्षित गुणवत्ता (जैसे HD, FHD) का अनुरोध करने देता है और यदि डिवाइस उसे उपलब्ध नहीं करा सकता, तो वैकल्पिक गुणवत्ता का उपयोग करता है।
val recorder = Recorder.Builder()
.setQualitySelector(
QualitySelector.from(
Quality.FHD,
FallbackStrategy.lowerQualityOrHigherThan(Quality.SD)
)
)
.build()VideoCapture बनाना
withOutput फ़ैक्टरी के साथ Recorder को VideoCapture उपयोग-केस में लपेटें। यह वही ऑब्जेक्ट है जिसे आप कैमरे से बाइंड करते हैं, ठीक ImageCapture की तरह।
val videoCapture = VideoCapture.withOutput(recorder)प्रीव्यू + VideoCapture को बाइंड करना
प्रीव्यू और VideoCapture को एक साथ बाइंड करें। ध्यान रखें कि कई डिवाइसों पर आप एक ही समय में ImageCapture और VideoCapture को बाइंड नहीं कर सकते, इसलिए अपनी स्क्रीन की ज़रूरत के अनुसार उपयोग-केस चुनें।
cameraProvider.unbindAll()
cameraProvider.bindToLifecycle(
lifecycleOwner,
CameraSelector.DEFAULT_BACK_CAMERA,
preview,
videoCapture
)ऑडियो अनुमति
ध्वनि रिकॉर्ड करने के लिए CAMERA के अतिरिक्त RECORD_AUDIO रनटाइम अनुमति भी चाहिए। रिकॉर्डिंग शुरू करने से पहले दोनों का अनुरोध करें और ऑडियो केवल तभी सक्षम करें जब उपयोगकर्ता ने इसकी अनुमति दी हो।
// Manifest declares both:
// <uses-permission android:name="android.permission.CAMERA" />
// <uses-permission android:name="android.permission.RECORD_AUDIO" />
val audioGranted = ContextCompat.checkSelfPermission(
context, Manifest.permission.RECORD_AUDIO
) == PackageManager.PERMISSION_GRANTEDMediaStore के माध्यम से आउटपुट
फ़ोटो की तरह, स्कोप्ड स्टोरेज का उपयोग करके वीडियो को MediaStore में सहेजें। mp4 MIME प्रकार वाला ContentValues बनाएँ और MediaStoreOutputOptions बनाएँ।
val values = ContentValues().apply {
put(MediaStore.MediaColumns.DISPLAY_NAME, "VID_${System.currentTimeMillis()}")
put(MediaStore.MediaColumns.MIME_TYPE, "video/mp4")
put(MediaStore.Video.Media.RELATIVE_PATH, "Movies/MyApp")
}
val outputOptions = MediaStoreOutputOptions
.Builder(context.contentResolver, MediaStore.Video.Media.EXTERNAL_CONTENT_URI)
.setContentValues(values)
.build()रिकॉर्डिंग शुरू करना
Recorder से रिकॉर्डिंग तैयार करें, चाहें तो withAudioEnabled() से ऑडियो सक्षम करें, फिर इसे start() करें। start() एक Recording ऑब्जेक्ट लौटाता है, जिसे आपको बाद में रोकने के लिए सुरक्षित रखना होगा।
आप एक listener भी पास करते हैं, जो VideoRecordEvent अपडेट प्राप्त करता है।
val recording = videoCapture.output
.prepareRecording(context, outputOptions)
.apply { if (audioGranted) withAudioEnabled() }
.start(ContextCompat.getMainExecutor(context)) { event ->
when (event) {
is VideoRecordEvent.Start -> { /* recording began */ }
is VideoRecordEvent.Finalize -> {
if (!event.hasError()) {
// event.outputResults.outputUri -> saved video
}
}
}
}रिकॉर्ड इवेंट पर प्रतिक्रिया देना
listener रिकॉर्डिंग के जीवनचक्र की जानकारी लगातार भेजता है:
VideoRecordEvent.Start— रिकॉर्डिंग शुरू हो गई है (UI को स्टॉप बटन में अपडेट करें)।VideoRecordEvent.Status— रिकॉर्ड की गई अवधि/आकार के आवधिक अपडेट।VideoRecordEvent.Finalize— रिकॉर्डिंग समाप्त हो गई है;hasError()जाँचें।
is VideoRecordEvent.Status -> {
val seconds = event.recordingStats.recordedDurationNanos / 1_000_000_000
// Update an on-screen timer.
}रिकॉर्डिंग रोकना
समाप्त करने के लिए, पहले सहेजी गई Recording पर stop() कॉल करें। इससे Finalize इवेंट शुरू होता है, जिसमें वीडियो URI उपलब्ध हो जाता है।
सक्रिय रिकॉर्डिंग को state में रखें, ताकि एक ही बटन शुरू/रोकने के बीच टॉगल कर सके।
var activeRecording: Recording? = null
// Toggle handler:
if (activeRecording == null) {
activeRecording = startRecording()
} else {
activeRecording?.stop()
activeRecording = null
}रोकना और फिर शुरू करना
Recording को रोके बिना भी विराम दिया और फिर से शुरू किया जा सकता है। यह उपयोगकर्ताओं को कई क्लिप को एक फ़ाइल में जोड़ने की सुविधा देने के लिए उपयोगी है।
activeRecording?.pause()
// ...later
activeRecording?.resume()
// Final stop writes the file:
activeRecording?.stop()रिकॉर्डिंग के लिए Compose UI
UI को state से नियंत्रित करें। रिकॉर्डिंग सक्रिय है या नहीं, इसका पता रखें और उसी के अनुसार बटन का आइकन और कार्रवाई बदलें। क्योंकि listener मुख्य executor पर चलता है, आप सीधे उससे Compose state अपडेट कर सकते हैं।
var isRecording by remember { mutableStateOf(false) }
IconButton(onClick = { toggleRecording() }) {
Icon(
imageVector = if (isRecording) Icons.Default.Stop else Icons.Default.Videocam,
contentDescription = if (isRecording) "Stop" else "Record"
)
}त्वरित जाँच
CameraX के साथ वीडियो रिकॉर्डिंग की अपनी समझ की पुष्टि करें।
पुनरावलोकन
अब आप CameraX से वीडियो रिकॉर्ड कर सकते हैं:
QualitySelectorके साथRecorderबनाएँ और उसेVideoCapture.withOutputमें लपेटें।- इसे प्रीव्यू के साथ बाइंड करें और ध्वनि के लिए
RECORD_AUDIOका अनुरोध करें। MediaStoreOutputOptionsके माध्यम से सहेजें, फिरprepareRecording().start()करके एकRecordingप्राप्त करें।VideoRecordEvents पर प्रतिक्रिया दें; अंतिम रूप देने और सहेजा गया URI पढ़ने के लिएstop()कॉल करें।
आपने CameraX पाठ्यक्रम पूरा कर लिया है—प्रीव्यू, फ़ोटो और वीडियो, सभी अब आपके टूलकिट में हैं।
एआई शिक्षक के साथ Kotlin सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 36
- पाठ
- 152
अक्सर पूछे जाने वाले प्रश्न
क्या “वीडियो रिकॉर्ड करना” पाठ निःशुल्क है?
हाँ — Android Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “वीडियो रिकॉर्ड करना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Android Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“वीडियो रिकॉर्ड करना” में मैं क्या सीखूँगा?
CameraX से वीडियो प्राप्त करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Android Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Android Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Android Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“वीडियो रिकॉर्ड करना” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Android Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Android Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- CameraX का परिचय
- कैमरा प्रीव्यू दिखाना
- फ़ोटो लेना
- वीडियो रिकॉर्ड करना