প্রকল্প সম্পর্কে
MediaBridge হল MPMediaLibrary ইন্টিগ্রেশনের জন্য একটি Swift ব্রিজ, যা Swift প্যাকেজ হিসেবে বিতরণ করা হয়। এটি iOS 15.0+ এবং visionOS 1.0+ টার্গেট করে এবং Swift 6.0 / Xcode 16 বা তার পরে প্রয়োজন; CI Swift 6.0-এর বিরুদ্ধে বিল্ড করে এবং Swift 6.1 থেকে 6.4-এ টেস্ট চালায়।
প্যাকেজটি Apple-এর MediaPlayer ফ্রেমওয়ার্ককে একটি উচ্চ-স্তরের সার্ভিস লেয়ার দিয়ে মোড়ানো করে। একটি MusicLibrary টাইপ গান, অ্যালবাম, শিল্পী, প্লেলিস্ট, জেনার, কম্পোজার, কম্পাইলেশন, পডকাস্ট এবং অডিওবুক ফেচ করার জন্য অ্যাসিংক মেথড প্রকাশ করে, পাশাপাশি songSections()-এর মাধ্যমে A–Z ইনডেক্স সেকশনও দেয়। একটি changes অ্যাসিংক সিকোয়েন্স কলারদের লাইব্রেরি পরিবর্তিত হলে পুনরায় ফেচ করতে দেয়।
একটি কী-পাথ কোয়েরি বিল্ডার টাইপড মডেল সমর্থন করে: কোয়েরিগুলি ফিল্টার করতে পারে (উদাহরণস্বরূপ isCloudItem-এ), playCount বা releaseDate-এর মতো কী-পাথে সাজাতে পারে এবং ফলাফল সীমিত করতে পারে। README-তে একটি পাবলিক রেট্রোঅ্যাকটিভ কনফরমেন্স Optional: Comparable যেখানে Wrapped: Comparable উল্লেখ করা হয়েছে যাতে অপশনাল কী-পাথ সাজানো যায়, এবং সতর্ক করা হয়েছে যে অন্য ডিপেন্ডেন্সি থেকে বিরোধপূর্ণ কনফরমেন্স থাকলে ডিসঅ্যাম্বিগুয়েশন প্রয়োজন হবে।
প্লেলিস্ট ম্যানেজমেন্ট অন্তর্ভুক্ত: কলাররা আইডি দিয়ে প্লেলিস্ট ফেচ করতে পারে বা PlaylistMetadata থেকে তৈরি করতে পারে, তারপর ফেচ করা আইটেম যোগ করতে পারে। iOS-এ, একটি mediaPicker SwiftUI মডিফায়ার সিস্টেম পিকার উপস্থাপন করে এবং নির্বাচিত গান ফেরত দেয়।
SwiftUI-এর জন্য, লাইব্রেরিটি এনভায়রনমেন্টের মাধ্যমে ইনজেক্ট করা যায়; উদাহরণে স্কিপ কাউন্ট দিয়ে গান সাজানো, ট্র্যাক কাউন্ট দিয়ে অ্যালবাম সাজানো এবং তুলনা টাইপ দিয়ে জেনার দিয়ে গান ফিল্টার করা দেখানো হয়েছে। সার্ভিস লেয়ার এবং অথরাইজেশন ম্যানেজার ডিফল্টভাবে প্রোডাকশন (.live) ইমপ্লিমেন্টেশন ব্যবহার করে, টেস্টিং বা বিশেষ আচরণের জন্য কাস্টম ইমপ্লিমেন্টেশন সম্ভব। অথরাইজেশন স্পষ্টভাবে অনুরোধ করা যায়, এবং ফেচ নিজেরাই অ্যাক্সেস অনুরোধ করে; README জোর দেয় যে NSAppleMusicUsageDescription অবশ্যই Info.plist-এ থাকতে হবে অথবা iOS প্রথম লাইব্রেরি অ্যাক্সেসে অ্যাপটি বন্ধ করে দেয়।
ইনস্টলেশন Swift Package Manager-এর মাধ্যমে 0.14.0 থেকে শুরু হওয়া ভার্সন প্রয়োজনীয়তা সহ। README-তে 0.11.0 (সার্ভিস প্রোটোকল MediaQueryRequest নেওয়া items(_:) এবং collections(_:)-এ হ্রাস; প্রিভিউ .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.