Asma'a نشر 6 أبريل 2021 أرسل تقرير نشر 6 أبريل 2021 import java.awt.*; import java.awt.event.*; import java.io.File; import java.net.MalformedURLException; import java.util.logging.*; import javax.sound.sampled.*; import javax.swing.*; public class BounceyDot { public static float SAMPLE_RATE = 8000f; public static void tone(int hz, int msecs) throws LineUnavailableException { tone(hz, msecs, 1.0); } public static void tone(int hz, int msecs, double vol) throws LineUnavailableException { byte[] buf = new byte[1]; AudioFormat af = new AudioFormat( SAMPLE_RATE, // sampleRate 8, // sampleSizeInBits 1, // channels true, // signed false); // bigEndian SourceDataLine sdl = AudioSystem.getSourceDataLine(af); sdl.open(af); sdl.start(); for (int i=0; i < msecs*8; i++) { double angle = i / (SAMPLE_RATE / hz) * 2.0 * Math.PI; buf[0] = (byte)(Math.sin(angle) * 127.0 * vol); sdl.write(buf,0,1); } sdl.drain(); sdl.stop(); sdl.close(); } public static void main(String[] args) { new BounceyDot(); } public BounceyDot() { EventQueue.invokeLater(new Runnable() { @Override public void run() { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { } JFrame frame = new JFrame("Testing"); SoundUtils.tone(1000,100); try { Thread.sleep(1000); } catch (InterruptedException ex) { Logger.getLogger(BounceyDot.class.getName()).log(Level.SEVERE, null, ex); } SoundUtils.tone(100,1000); try { Thread.sleep(1000); } catch (InterruptedException ex) { Logger.getLogger(BounceyDot.class.getName()).log(Level.SEVERE, null, ex); } SoundUtils.tone(5000,100); try { Thread.sleep(1000); } catch (Exception ex) { System.out.println(ex.getMessage()); } SoundUtils.tone(400,500); try { Thread.sleep(1000); } catch (Exception ex) { System.out.println(ex.getMessage()); } SoundUtils.tone(400,500, 0.2); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(new BorderLayout()); frame.add(new TestPane()); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } }); } public class TestPane extends JPanel { private int x = 0; private int y = 100; private int radius = 20; private int xDelta = 2; public TestPane() { Timer timer = new Timer(40, new ActionListener() { @Override public void actionPerformed(ActionEvent e) { x += xDelta; if (x + (radius * 2) > getWidth()) { x = getWidth() - (radius * 2); xDelta *= -1; } else if (x < 0) { x = 0; xDelta *= -1; } repaint(); } }); timer.start(); } @Override public Dimension getPreferredSize() { return new Dimension(200, 200); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.setColor(Color.RED); g.fillOval(x, y - radius, radius * 2, radius * 2); } } } السلام عليكم هنا عملت كود الصوت مع الأشكال ..لمن كل كود منفصل لحالة يعمل بشكل صحيح لكن لمن أدمج الكودين ينتج خطأ لم أستطيع تصحيحة..فممكن مساعدة؟ اقتباس
السؤال
Asma'a
السلام عليكم هنا عملت كود الصوت مع الأشكال ..لمن كل كود منفصل لحالة يعمل بشكل صحيح لكن لمن أدمج الكودين ينتج خطأ لم أستطيع تصحيحة..فممكن مساعدة؟
0 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.