جافا - تشغيل ملفات الفيديو والصوت (mp4 ، mp3 ، ...) باستخدام vlcj

Required:
- Download VLC (download VLC media player)
- قم بتثبيت vlc 32 بت للجهاز الظاهري 32 بت أو 64 بت ل JVM VM

Java Media Player with VLC vlcj Library< / a>< / div>
مشغل وسائط صنعناه بنسبة 100٪ في Java< / span >< / div>
< / span>
< div class = "فاصل" النمط = "واضح: كلاهما; محاذاة النص: الوسط؛" >

< / span >< span style = "عائلة الخط: " اريال" , " هيلفيتيكا" ، بلا رقيق ؛" >يمكنك استخدام <ب>مكتبة JMF,  ولكن يبدو أنه قديم وقديم ، لذلك بدأ المطورون في التطوير من مكتبة VLC الشهيرة ل C ++ مكتبة تسمى vlcj < / i> (j for java).

سنعرض لك مثالا سريعا على كيفية استخدام هذه المكتبة الرائعة. ما عليك سوى نسخ ولصق الكود الموجود في المثال أدناه في IDE المفضل لديك:  Elipse أو Netbeans. لاحظ أنك بحاجة إلى < / span> download vlcj library ودمجه في مشروعك وفي classpath.

< / span >< / div>
الهدف هو التأكد من أن لديك بيئة عمل. هذه الخطوة حاسمة في ترميز أي تطبيق يستخدم vlcj. إذا لم يعمل هذا التطبيق البسيط ، فلن تعمل جميع التطبيقات المتبقية التي تم ترميزها في java والتي تدمج vlcj.

ابحث عن المكتبة الأصلية< / span >< / h2 >يجب أن يشير مسار المكتبة الأصلية إلى المجلد الذي يحتوي على الملفين  libvlc.dll and libvlccore.dll. في لينكس ، تتم تسمية الملفات libvlc.so و libvlccore.so. يوجد هذان الملفان dll في مجلد VLC ، إذا لم تتمكن من العثور عليهما ، فقم بتنزيلهما وإضافتهما إلى المجلد حيث  تم تثبيت VLC.< / span>

NativeLibrary.addSearchPath (< / span>< / div>
  نبسب؛ نبسب؛ نبسب؛ نبسب؛ نبسب؛ نبسب؛ نبسب؛ نبسب؛ نبسب؛ RuntimeUtil.getLibVlcLibraryName(),  < / span >< span lang = "EN-US" النمط = "اللون: أزرق ؛ عائلة الخط: " كونسولاس"؛ حجم الخط: 10.0pt;" > "< / span>< نمط الامتداد = "اللون: أزرق ؛ عائلة الخط: " تايمز نيو رومان";" >C: / ملفات البرنامج / VideoLAN / VLC < / span >) ؛ < / span >< / div>< / div>

أحد الأخطاء التي ارتكبت هو أن Java VM يستخدم مع إصدار 32 بت من VLC. لن يعمل فقط لأنه يتعين عليك استخدام إصدار VLC 64 بت مع JDK 64 بت وإصدار VLC 32 بت مع JDK 32 بت JDK.< / span>

تحميل المكتبة الأصلية< / span >< / h2 >< / div>
تستخدم واجهة برمجة تطبيقات vlcj JNA الذي يربط VLC بالمكتبة. هذا يعني أن  البيئة  يجب  أن تكون  تكوين جيد  وهكذا  سيكون تطبيق Java قادرا على تحديد موقع ملف بائع كتب  native.
Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc. class< / span >< / b >); < / span>< / div>

< / div>
باطل < / span >< span lang = "EN-US" style = "font-family: " كونسولاس";" >< نمط الامتداد = "اللون: #741b47 ؛" >  < / span>chargerLibrary () {< / span >
< div class = "MsoNormal" style = "الهامش السفلي: 0.0001pt;" >  نبسب؛ NativeLibrary.addSearchPath
  نبسب؛ RuntimeUtil.getLibVlcLibraryName(), "C: / ملفات البرنامج / VideoLAN / VLC" < / span >); < / span >< / o: p>< / span>< / div>
  نبسب؛ Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class); < / span >< / div>
< span style = "عائلة الخط:" كونسولاس"؛ ارتفاع الخط: 115٪ ؛" >}< / span>< / div>< / td>< / tr>< / tbody>< / table>

فئتان أساسيتان: < / span >
  • MediaPlayerFactory: تهيئة مثيل واحد من libvlc وإنشاء مثيلات محرك الأقراص. الوسائط المتعدده. نستطيع  إنشاء لوحات متعددة لكل فيديو ، على سبيل المثال.
  • EmbeddedMediaPlayer: يدمج أحد مكونات مشغل الوسائط في مكون واجهة المستخدم. إنه مع هذه الفئة عندما يمكن  التحكم< / span>  أي شيء له علاقة ب  واجهة المستخدم مثل إعداد أو بدء التشغيل ، ملء الشاشة ، إلخ.< / span>< / li>< / ul>

    مثال

    import java.awt.BorderLayout; 
    import java.awt.Canvas;
    import java.awt.Color;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.SwingUtilities;
    import com.sun.jna.native ؛
    import com.sun.jna.NativeLibrary;
    import uk.co.caprica.vlcj.binding.LibVlc;
    import uk.co.caprica.vlcj.player.MediaPlayerFactory;
    import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer;
    import uk.co.caprica.vlcj.player.embedded.windows.Win32FullScreenStrategy;
    import uk.co.caprica.vlcj.runtime.RuntimeUtil;
    import uk.co.caprica.vlcj.runtime.x.LibXUtil;

    / * www.codeurjava.com * /

    لوحة وسائط الفئة العامة {

    الفراغ الثابت العام الرئيسي (السلسلة النهائية [] args) {
    SwingUtilities.invokeLater(new Runnable() {
    @Override
    تشغيل الفراغ العام () {
    chargerLibrary ();
    لوحة وسائط جديدة (args) ؛
    }
    })؛
    }

    شاحن فارغ () {
    NativeLibrary.addSearchPath (
    RuntimeUtil.getLibVlcLibraryName () ، "C: / Program Files / VideoLAN / VLC") ؛
    Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);
    LibXUtil.initialise();
    }

    لوحة الوسائط الخاصة (سلسلة [] args) {
    إطار JFrame = JFrame جديد ("vlcj tutorial") ؛
    frame.setLocation (100 ، 100) ؛
    frame.setSize (1050 ، 600) ؛
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible (صحيح) ؛

    // إنشاء مثيل ل Canvas
    Canvas c = New Canvas () ؛
    // خلفية الفيديو سوداء افتراضيا
    c.setBackground(Color.black);
    JPanel p = JPanel الجديد ();
    p.setLayout (تخطيط الحدود الجديد ()) ؛
    // يشغل الفيديو السطح بالكامل
    p.add (c ، BorderLayout.CENTER) ؛
    frame.add (p ، BorderLayout.CENTER) ؛

    // إنشاء مصنع
    ميديا بلاير فاكتوري ميديا بلاير فاكتوري = ميديا بلاير فاكتوري جديد ();
    //إنشاء مثيل مشغل وسائط
    EmbeddedMediaPlayer mediaPlayer = mediaPlayerFactory.newEmbeddedMediaPlayer (جديد Win32FullScreenStrategy (إطار)) ؛
    mediaPlayer.setVideoSurface (mediaPlayerFactory.newVideoSurface (c)) ؛
    //ملء الشاشة
    mediaPlayer.toggleFullScreen();
    // إخفاء مؤشر الماوس داخل JFrame
    mediaPlayer.setEnableMouseInputHandling(خطأ);
    // تعطيل لوحة المفاتيح داخل JFrame
    mediaPlayer.setEnableKeyInputHandling(true);

    //Prepare file
    mediaPlayer.prepareMedia ("vidéo.mp4");
    //play ملف
    mediaPlayer.play() ؛
    }
    }< / pre>< / div>
    ها أنت ذا! باستخدام بضعة أسطر من التعليمات البرمجية ، يمكنك الآن الحصول على مشغل الوسائط الخاص بك. ابدأ في استكشاف vlcj documentation عبر الإنترنت لتطوير تطبيقك الخاص حسب الحاجة.