الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن استدعاء ملف صوت من احدى محركات الاقراص بدون Swing.japplet

بدأه MNF في 21 نوفمبر 2008 · 5 رد · 916 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم.

يعطيكم العافية ياشباب..

سؤالي هو: كيف يمكن استدعاء ملف صوتي موجود في مجلد على محرك اقراص معين الي برنامج جافا يتعامل مع GUI-Swing

علما بان البرنامج عامل extends JFrame وليس JApplet ؟

إن شاء الله لا تبخلوا علينا بالاجابة..

تحياتنا للجميع :D ..

"وَمَا تَدْرِي نَفْسٌ مَّاذَا تَكْسِبُ غَداً وَمَا تَدْرِي نَفْسٌ بِأَيِّ أَرْضٍ تَمُوتُ إِنَّ اللَّهَ عَلِيمٌ خَبِيرٌ"

#2

وعليكــم السـلام ورحمة الله وبركاتـه..

لا توجد مشكله حتى لو قمت بعمل extends لJFrame ، والسبب أنك لن تستخدم JApplet أبدا ، أنت ستستخدم الكلاس AudioClip ، لكن المشكله أنه لكي تحصل على كائن من هذا الكلاس يجب أن تستدعي داله موجوده في Applet وهي newAudioClip . والداله هي static يعني لن توجد مشكله أبدا ..

هذا مثال بسيط ،

import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;

import java.net.URL;
import java.net.MalformedURLException;

import java.applet.Applet;
import java.applet.AudioClip;

public class PlaySoundGUI 
{
   public static void main (String args[])
   {
	  PlaySoundFrame app = new PlaySoundFrame();
	  app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	  app.setVisible(true);
   }
}

class PlaySoundFrame extends JFrame
{
   private JButton playBtn , stopBtn , loopBtn;
   private AudioClip ac ;

   public PlaySoundFrame ()
   {
	  setTitle("Play Sound Test");
	  setSize(250,200);
	  setLocation(200,200);

	  try
	  {
		 ac = Applet.newAudioClip( new URL("file:///C:/java/ggg.wav") );
	  }
	  catch ( MalformedURLException  e)
	  {
		 System.out.println("Invalid URL !");
		 System.exit(1);
	  }

	  playBtn = new JButton("Play");
	  stopBtn = new JButton("Stop");
	  loopBtn = new JButton("Loop");

	  BtnListener listener = new BtnListener();
	  playBtn.addActionListener(listener);
	  stopBtn.addActionListener(listener);
	  loopBtn.addActionListener(listener);

	  JPanel btnPanel = new JPanel();
	  btnPanel.add(playBtn);
	  btnPanel.add(stopBtn);
	  btnPanel.add(loopBtn);

	  add(btnPanel,BorderLayout.SOUTH );
   }

   private class BtnListener implements ActionListener 
   {
	  public void actionPerformed (ActionEvent event)
	  {
		 if ( event.getSource() == playBtn )
			ac.play();

		 if ( event.getSource() == stopBtn )
			ac.stop();

		 if ( event.getSource() == loopBtn )
			ac.loop();
	  }
   }
}

ويمكن أن تستخدم مكتبات خارجيه أخرى لتشغيل الصوت ان لم ترد استخدام الطريقه أعلاه ، كJMF .

بالتوفيق .

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#3

جزاك الله كل خير..

وجعله الله في ميزان حسناتك..

شكرا اخ

اقتباس
Wajdy Essam

"وَمَا تَدْرِي نَفْسٌ مَّاذَا تَكْسِبُ غَداً وَمَا تَدْرِي نَفْسٌ بِأَيِّ أَرْضٍ تَمُوتُ إِنَّ اللَّهَ عَلِيمٌ خَبِيرٌ"

#4

اخ Wajdy Essam عندي سؤال صغير اخر وهو:

لو ملفات الصوت موجودة في ملف من ضمن ملفات البرنامج كيف يتم استدعئها؟

وفي حالة الصور كذلك كيف يمكن استدعائها من محرك اقراص او من ضمن ملفات البرنامج؟

غلبناك معنا...

"وَمَا تَدْرِي نَفْسٌ مَّاذَا تَكْسِبُ غَداً وَمَا تَدْرِي نَفْسٌ بِأَيِّ أَرْضٍ تَمُوتُ إِنَّ اللَّهَ عَلِيمٌ خَبِيرٌ"

#5

تقصد ملف jar ؟

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#6

السلام عليكم..

لا اعلم ماذا قصدت بالنسبة لل jar ؟

ولكن انا اقوم بتصميم مشروع يتعامل مع الصورة والصوت باستخدام برنامج JCreator وأريد استدعاء ملفات الصوت والصورة من مجلد معين موجود في نفس المصار(path) الذي يتواجد فيه ملفات المشروع(src + classes).

شكرا على استجابتكم...

"وَمَا تَدْرِي نَفْسٌ مَّاذَا تَكْسِبُ غَداً وَمَا تَدْرِي نَفْسٌ بِأَيِّ أَرْضٍ تَمُوتُ إِنَّ اللَّهَ عَلِيمٌ خَبِيرٌ"

مواضيع مشابهة