سؤال

كما يوحي موضوع هذا المنشور ، أنا أبحث في تطوير جناح مثل Nero الذي يساعد على حرق أقراص BluRay. أنا جاهل نوعًا ما عن أين أبدأ. هل هناك أي شيء في Java API يتيح لك القيام بذلك؟ إذا كنت سأبدأ من الصفر ، فهل سأحتاج إلى البدء بمواصفات قرص بلوراي؟ هل هناك أي أدوات مفتوحة المصدر تقوم بذلك بالفعل؟ حاولت البحث في SourceForge.net ولم أجد شيئًا مفيدًا. أي مساعدة هي محل تقدير كبير.

هل كانت مفيدة؟

المحلول

للبدء مع ما هو واضح: تعرف على متطلباتك وأدواتك. أحاول التخمين هنا ، ربما.

متطلبات:

  1. يجب أن تحرق أقراص بلوراي
  2. واجهة المستخدم الرسومية

الأداة المفضلة:

  • جافا

الآن ، جافا ، التي ربما تكون مثالًا رئيسيًا على لغة VM من التسعينيات ، تحقق منصة جيدة نسبيًا من النظام الأساسي بحكم VM. إنها لغة مصمم للركض على أ افتراضية الأجهزة لتخفيف قابلية النقل إلى الأجهزة الحقيقية.

الآن ، ما يأتي مع هذه الحقيقة هو أنك تجري العديد من الأشياء التي يجب أن تهتم بها ، مثل تفاصيل إدارة الذاكرة والهندسة المعمارية أو محددة منصة. من بين تلك الأشياء التي لا يمكنك الوصول إليها بشكل موثوق هي الأجهزة. بعد كل شيء ، لقد استخلصت معظم ذلك بعيدًا.

الآن ، لحرق قرص بلوراي لك لديك للوصول إلى الأجهزة ، وخاصة كاتب Bluray. ليس هذا مستحيلًا ولكن جافا ، في رأيي المتواضع ، وليس الأداة الصحيحة لهذا الغرض. يمكنك الخروج من طريقك عن طريق تنفيذ مكتبة في C أو C ++ واستخدام JNI/JNA للوصول إلى ذلك ولكن النظر إلى ذلك ، ما الذي تكسبه حقًا؟

عادةً ما تكون Java خيارًا عندما تحتاج إلى لغة حديثة عالية المستوى إلى حد ما مع مكتبة قياسية كبيرة وتحتاج أيضًا إلى تشغيل برامجك على أكثر من منصة واحدة. تلك هي حالات الاستخدام الأساسية. ليس من المستحيل مع التقنيات الأخرى ، ولكن ربما يكون من الصعب تحقيقه ، اعتمادًا على ما تحتاجه بالضبط.

إذا قمت بتطبيق مكتبة أصلية للتحدث إلى كاتب Bluray والتحدث مع ذلك من Java ، فأنت بحاجة بالضرورة إلى إعادة تنفيذها لمنصات أخرى أيضًا (على افتراض أن هذا ما تريد-إن لم يكن ، ثم مرة أخرى: لماذا Java؟) .

إصدار TL/DR: نقطتي هي أنه ليس من المستغرب جدًا أنه لا يمكنك العثور على الكثير حول هذا الموضوع بالضبط. لأحد ، لم تكن جافا مصممة حقًا للقيام بهذا النوع من الأشياء. معظم Java/Native Interop تقع في JVM وهذا بالفعل الكثير من الكود. لا تتوقع أن تدعم Java سيناريوهات الاستخدام النادرة جدًا مثل حرق CD/DVD/Bluray. ثانياً ، تعتبر BluRay تقنية جديدة نسبيًا مع كتاب غير شائعين بعد في أجهزة الكمبيوتر مثل كتاب CD/DVD ، وبالتالي فإن عدم وجود مكتبات وأدوات قد يكون أيضًا مرآة للمطالب الحالية للسوق.

نصائح أخرى

إن الوصول إلى الأجهزة منخفضة المستوى غير ممكن ببساطة في Java الخالص ما لم يكن في واجهة برمجة التطبيقات القياسية ، وهو ما ليس بلوراي.

لذلك ، سيتعين عليك استخدام رمز غير جافا للوصول إلى الأجهزة ؛ في تلك المرحلة ، تفقد استقلال المنصة لـ Java ، ولديها بالضرورة نظام متعدد اللغات ، وهو دائمًا أكثر إيلامًا للبرمجة من استخدام لغة واحدة فقط.

ومع ذلك ، إذا تمكنت من العثور على (أو ، على ما أظن ، تطوير) ، فإن أداة كتابة واجهة برمجة تطبيقات أو خط الأوامر متعدد المنصات في (على الأرجح) C ، فقد لا يزال من المنطقي كتابة بقية التطبيق في Java باعتباره واجهة المستخدم الرسومية غلاف مع وظائف إضافية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top