منصوبے کے بارے میں
CPAL (کراس پلیٹ فارم آڈیو لائبریری) آڈیو ان پٹ اور آؤٹ پٹ کے لیے ایک کم سطحی Rust لائبریری ہے۔ اس کا مقصد بنیادی تہہ کے طور پر کام کرنا ہے؛ README ان صارفین کو جو اعلیٰ سطحی پلے بیک اور کیپچر چاہتے ہیں، Rodio یا اسی طرح کی لائبریریوں کی طرف رہنمائی کرتا ہے۔
README میں بیان کردہ صلاحیتیں:
- آڈیو ہوسٹس، ڈیوائسز اور ان کی معاون اسٹریم کنفیگریشنز کی فہرست بنانا۔
- مستحکم ID یا پہلے سے طے شدہ ان پٹ/آؤٹ پٹ کردار کے ذریعے ڈیوائسز تلاش کرنا۔
- ڈیوائس میٹا ڈیٹا کا معائنہ: نام، مینوفیکچرر، قسم اور بس کی قسم۔
- کمپائل ٹائم یا رن ٹائم سیمپل فارمیٹس کے ساتھ ان پٹ اور آؤٹ پٹ اسٹریمز بنانا۔
- اسٹریم کی بفر سائز اور کلاک کو چلانا، روکنا اور استفسار کرنا۔
پلیٹ فارمز اور پہلے سے طے شدہ بیک اینڈز:
- Android: AAudio
- BSD: ALSA (اختیاری JACK، PipeWire، PulseAudio)
- iOS، macOS، tvOS، visionOS: CoreAudio (macOS اختیاری JACK)
- Linux: ALSA (اختیاری JACK، PipeWire، PulseAudio)
- WebAssembly: Web Audio API (اختیاری Audio Worklet)
- Windows: WASAPI (اختیاری ASIO، JACK)
اختیاری خصوصیات میں asio، audioworklet، custom، jack، pipewire، pulseaudio، realtime، realtime-dbus اور wasm-bindgen شامل ہیں۔ README میں بلڈ انحصار (مثال کے طور پر ALSA کے لیے Debian/Ubuntu پر libasound2-dev، جو JACK، PipeWire یا PulseAudio استعمال کرتے وقت بھی ضروری ہے)، فی بیک اینڈ کم سے کم تعاون یافتہ Rust اور OS/رن ٹائم ورژن، اور Android (cargo-apk، JNI سیاق و سباق انیشیالائزیشن)، ASIO (CPAL_ASIO_DIR، LLVM/Clang، LIBCLANG_PATH، Visual Studio، MinGW-w64 کراس کمپائلیشن) اور WebAssembly کے لیے سیٹ اپ کے اقدامات دستاویز کیے گئے ہیں۔
خرابیوں کا ازالہ کرنے کی رہنمائی میں گمشدہ پہلے سے طے شدہ ڈیوائسز، ALSA/PipeWire/PulseAudio ڈیوائس تنازع (DeviceBusy جب ساؤنڈ سرور ALSA ڈیفالٹ ڈیوائس رکھتا ہے)، بفر سائز کنفیگریشن اور اس کی تاخیر کی تجارت، PipeWire ریزیمپلنگ گلیچز، ALSA ریئل ٹائم پرائرٹی فروغ (SCHED_FIFO، CAP_SYS_NICE، rtprio حدود، D-Bus کے ذریعے rtkit)، اور بلڈ ایررز شامل ہیں۔ ڈوپلیکس ڈیوائسز پر بحث کی گئی ہے: CPAL خود ڈیوائسز کو جوڑتا نہیں ہے اور اسے ایسی ڈیوائس کی ضرورت ہوتی ہے جو پہلے سے دونوں کیپچر اور پلے بیک کا دعویٰ کرتی ہو، جس کے اختیارات میں ALSA asym پلگ ان یا JACK کلائنٹ پورٹس شامل ہیں۔
ریپوزٹری میں examples/ کے تحت مثالیں موجود ہیں (مثال کے طور پر beep)، جنہیں cargo run --example beep اور پلیٹ فارم مخصوص بیک اینڈز کے لیے فیچر فلیگ کے ساتھ چلایا جا سکتا ہے۔ لائسنسنگ Apache-2.0 ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.