इस प्रोजेक्ट के बारे में
MediaBridge, MPMediaLibrary इंटीग्रेशन के लिए एक Swift ब्रिज है, जिसे Swift Package के रूप में वितरित किया जाता है। यह iOS 15.0+ और visionOS 1.0+ को लक्षित करता है, तथा Swift 6.0 / Xcode 16 या बाद के संस्करण की आवश्यकता रखता है; CI, Swift 6.0 के विरुद्ध बिल्ड करता है और Swift 6.1 से 6.4 तक टेस्ट चलाता है।
यह पैकेज Apple के MediaPlayer फ्रेमवर्क को एक उच्च-स्तरीय सर्विस लेयर के साथ रैप करता है। एक MusicLibrary टाइप गानों, एल्बमों, कलाकारों, प्लेलिस्टों, शैलियों, संगीतकारों, संकलनों, पॉडकास्टों और ऑडियोबुक्स को फ़ेच करने के लिए async मेथड्स उजागर करता है, साथ ही songSections() के माध्यम से A–Z इंडेक्स सेक्शन भी। एक changes async सीक्वेंस कॉलर्स को लाइब्रेरी बदलने पर पुनः फ़ेच करने देता है।
एक की-पाथ क्वेरी बिल्डर टाइप्ड मॉडल का समर्थन करता है: क्वेरीज़ फ़िल्टर कर सकती हैं (उदाहरण के लिए isCloudItem पर), playCount या releaseDate जैसे की-पाथ्स द्वारा सॉर्ट कर सकती हैं, और परिणामों को सीमित कर सकती हैं। README एक सार्वजनिक रेट्रोएक्टिव कॉन्फ़ॉर्मेंस Optional: Comparable where Wrapped: Comparable का उल्लेख करता है ताकि ऑप्शनल की-पाथ्स को सॉर्ट किया जा सके, और चेतावनी देता है कि किसी अन्य डिपेंडेंसी से टकरावपूर्ण कॉन्फ़ॉर्मेंस के लिए डिसएम्बिगुएशन की आवश्यकता होगी।
प्लेलिस्ट प्रबंधन शामिल है: कॉलर्स id द्वारा प्लेलिस्ट फ़ेच कर सकते हैं या PlaylistMetadata से एक बना सकते हैं, फिर उसमें फ़ेच किए गए आइटम जोड़ सकते हैं। iOS पर, एक mediaPicker SwiftUI मॉडिफायर सिस्टम पिकर प्रस्तुत करता है और चयनित गाने लौटाता है।
SwiftUI के लिए, लाइब्रेरी को एनवायरनमेंट के माध्यम से इंजेक्ट किया जा सकता है; उदाहरण गानों को skip count द्वारा, एल्बमों को track count द्वारा सॉर्ट करना, और तुलना प्रकार के साथ शैली द्वारा गानों को फ़िल्टर करना दिखाते हैं। सर्विस लेयर और ऑथराइज़ेशन मैनेजर डिफ़ॉल्ट रूप से प्रोडक्शन (.live) इम्प्लीमेंटेशन का उपयोग करते हैं, तथा टेस्टिंग या विशेष व्यवहार के लिए कस्टम इम्प्लीमेंटेशन संभव हैं। ऑथराइज़ेशन स्पष्ट रूप से अनुरोध किया जा सकता है, और फ़ेच स्वयं एक्सेस का अनुरोध करते हैं; README इस बात पर ज़ोर देता है कि Info.plist में NSAppleMusicUsageDescription मौजूद होना चाहिए अन्यथा iOS पहली लाइब्रेरी एक्सेस पर ऐप को टर्मिनेट कर देता है।
इंस्टॉलेशन Swift Package Manager के माध्यम से 0.14.0 से शुरू होने वाली वर्ज़न आवश्यकता के साथ किया जाता है। README 0.11.0 के लिए माइग्रेशन नोट्स दस्तावेज़ित करता है (सर्विस प्रोटोकॉल को items(_:) और collections(_:) तक घटा दिया गया जो MediaQueryRequest लेते हैं; प्रीव्यूज़ .preview(...) के माध्यम से MusicLibrary इंस्टेंस हैं; अस्वीकृत प्रीव्यूज़ अब थ्रो करते हैं) और 0.7.0 के लिए (albumArtistID प्रेडिकेट UInt64 लेता है; fetchSongs, fetchSong और fetch अब प्रोटोकॉल आवश्यकताएँ नहीं हैं बल्कि डेप्रिकेटेड एक्सटेंशन मेथड्स के रूप में बने हुए हैं)। डॉक्युमेंटेशन Swift Package Index पर होस्ट किया गया है, और प्रोजेक्ट MIT लाइसेंस के अंतर्गत है तथा CONTRIBUTING.md में योगदान दिशानिर्देश हैं।
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.