AVFoundation का परिचय
AVFoundation Apple का एक शक्तिशाली फ्रेमवर्क है, जो iOS, macOS, tvOS और watchOS प्लेटफॉर्म पर ऑडियो और वीडियो के साथ काम करने के लिए डिज़ाइन किया गया है। यह डेवलपर्स को मल्टीमीडिया कंटेंट को कैप्चर, प्रोसेस, प्ले और एडिट करने के लिए हाई-लेवल API प्रदान करता है। Core Audio या Video Toolbox जैसे लो-लेवल समाधानों के विपरीत, AVFoundation कोडेक्स, कंटेनर और सिंक्रोनाइज़ेशन की जटिल डिटेल्स को एब्सट्रैक्ट करता है, जिससे आप अपने ऐप के लॉजिक पर ध्यान केंद्रित कर सकते हैं।
AVFoundation की आवश्यकता क्यों है? यह कई प्रकार के कार्यों को हल करने में मदद करता है:
- प्लेबैक: ऑडियो फ़ाइलों (MP3, AAC, WAV) और वीडियो फ़ाइलों (MP4, MOV, M4V) को सबटाइटल और चैप्टर के साथ चलाना।
- रिकॉर्डिंग: कैमरे से वीडियो और माइक्रोफ़ोन से ऑडियो को रियल-टाइम में कैप्चर करना।
- एडिटिंग: कई ट्रैक से कम्पोज़िशन बनाना, इफेक्ट लगाना, क्रॉप करना, स्पीड बदलना।
- प्रोसेसिंग: मेटाडेटा निकालना, ऑडियो सैंपल के साथ काम करना, फ़िल्टर लगाना।
- स्ट्रीमिंग: HLS (HTTP Live Streaming) कंटेंट चलाना।
AVFoundation Apple डेवलपमेंट के लिए डी-फैक्टो स्टैंडर्ड है। यदि आप एक ऐप बना रहे हैं जो संगीत चलाता है, वीडियो रिकॉर्ड करता है या पॉडकास्ट एडिट करता है, तो आप इसी फ्रेमवर्क का उपयोग करेंगे।
इंस्टॉलेशन (प्रोजेक्ट में कनेक्ट करना)
AVFoundation pip या npm के माध्यम से इंस्टॉल नहीं होता, क्योंकि यह एक नेटिव Apple फ्रेमवर्क है। यह Xcode और SDK में बिल्ट-इन होता है। इसका उपयोग करने के लिए बस Swift फ़ाइलों में मॉड्यूल इम्पोर्ट करना होता है।
कनेक्ट करने के चरण:
- Xcode में अपना प्रोजेक्ट खोलें।
- किसी भी Swift फ़ाइल में जहाँ मल्टीमीडिया के साथ काम करना है, इम्पोर्ट लाइन जोड़ें:
import AVFoundation
किसी अतिरिक्त कार्रवाई की आवश्यकता नहीं है। यह फ्रेमवर्क सभी iOS/macOS प्रोजेक्ट्स के लिए स्वचालित रूप से उपलब्ध है।
परमिशन सेट करना (iOS)
कैमरा और माइक्रोफ़ोन के साथ काम करने के लिए Info.plist फ़ाइल में लाइनें जोड़ना आवश्यक है:
NSCameraUsageDescription— विवरण कि ऐप को कैमरे की आवश्यकता क्यों है।NSMicrophoneUsageDescription— विवरण कि ऐप को माइक्रोफ़ोन की आवश्यकता क्यों है।
इन कीज़ के बिना, डिवाइस तक पहुँचने का प्रयास करने पर ऐप क्रैश हो जाएगा।
त्वरित शुरुआत: ऑडियो प्लेबैक
सबसे सरल उदाहरण — लोकल ऑडियो फ़ाइल चलाना। AVAudioPlayer का इंस्टेंस बनाएँ और play() मेथड कॉल करें।
import AVFoundation
import UIKit
class ViewController: UIViewController {
var audioPlayer: AVAudioPlayer?
override func viewDidLoad() {
super.viewDidLoad()
// 1. Bundle में फ़ाइल का पथ खोजें
guard let path = Bundle.main.path(forResource: "sample", ofType: "mp3") else {
print("फ़ाइल नहीं मिली")
return
}
let url = URL(fileURLWithPath: path)
do {
// 2. प्लेयर को इनिशियलाइज़ करें
audioPlayer = try AVAudioPlayer(contentsOf: url)
// 3. प्लेबैक के लिए तैयार करें (वैकल्पिक, लेकिन अनुशंसित)
audioPlayer?.prepareToPlay()
// 4. प्ले करें
audioPlayer?.play()
print("प्लेबैक शुरू हो गया")
} catch {
print("प्लेयर इनिशियलाइज़ेशन में त्रुटि: \(error.localizedDescription)")
}
}
}
यह कोड एक प्लेयर बनाता है, ऐप के रिसोर्सेज़ से sample.mp3 फ़ाइल लोड करता है और उसे चलाना शुरू करता है।
मुख्य क्लासेज़ और मेथड्स
नीचे AVFoundation के प्रमुख क्लासेज़ और मेथड्स दिए गए हैं, जिनका उपयोग 90% कार्यों में होता है। प्रत्येक मेथड के लिए विवरण, पैरामीटर और कार्यशील उदाहरण दिया गया है।
1. AVAudioPlayer
क्या करता है: मेमोरी या फ़ाइल सिस्टम से ऑडियो फ़ाइलें चलाता है। सपोर्ट