Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    107

    Audio,image,timer help

    Ciao a tutti vorrei mettere all'interno di una finestra un timer, un immagine non a tutto sfondo ma per esempio in alto a dx e inserire l'audio in loop che viene fatto ripartire ogni volta che viene cliccato il tasto reset.

    Come posso fare? spero che potete aiutarmi,

    grazie

    Marshall

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Ti invito a leggere il regolamento per quanto riguarda i titoli delle discussioni.

    Questo lo sistemo io.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    107

    Re: Moderazione

    Ok grazie scusa. Sai come aiutarmi?

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Purtroppo non ho mai utilizzato JMF (Java Media Framework) per applicazioni che fanno uso di audio. Comunque con una ricerca nel forum dovresti trovare delle discussioni utili.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    107
    Ciao a tutti ho questo pannello a cui vorrei aggiungere un immagine ma che non ci riesco:

    public class PannelloVittoria extends Frame //Classe interna; crea un Frame al momento della vittoria
    {
    public PannelloVittoria() { // costruttore in cui si decidono i colori sullo sfondo e sul fronte della finestra
    setBackground(Color.yellow);
    setForeground(Color.blue);
    }
    public void paint(Graphics g) // metodo paint chiamato da setVisible: disegna il PannelloVittoria
    {
    Font f=new Font("Courier", Font.BOLD, 15);
    g.setFont(f);
    g.drawString("CONGRATULAZIONI HAI VINTO!!!", 28, 52);
    g.drawString("Per giocare di nuovo", 25, 72);
    g.drawString("seleziona Nuova partita dal menu file", 25, 92);
    g.drawString("altrimenti esci per terminare", 25, 112);
    g.drawString("GRAZIE PER AVER PARTECIPATO!!",28,132);


    }
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    }
    }


    Come posso fare ?? ho provato in vari modi ma non ci riesco!

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Da quello che vedo usi ancora AWT e non Swing...
    Poi, vedo che hai ridefinito il metodo paint() della finestra. Non che la cosa sia piacevolissima, comunque, per mantenere la stessa logica, puoi aggiungere al metodo paint() che hai ridefinito, queste istruzioni:
    codice:
    Image img = getToolkit().createImage("percorso_alla_tua_immagine");   // GIF, JPEG o PNG
    g.drawImage(posX, posY, larghezza, altezza, this);
    posX e posY sono le coordinate dell'angolo superiore sinistro dell'immagine (indicano la posizione dove vuoi disegnare l'immagine).
    larghezza e altezza sono le dimensioni dell'immagine
    this indica l'ImageObserver che si occuperà del rendering (la finestra stessa).

    A titolo puramente conoscitivo aggiungo che se tu usassi Swing al posto di AWT (consigliato, soprattutto perchè AWT è praticamente deprecato) ti risparmieresti tanto codice e risolveresti il problema in modo molto più elegante.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    107
    Cioè come posso fare a creare quel pannello con l'immagine in swing?

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Questa l'ho fatta al volo.
    Poi dipende da dove vuoi mettere l'immagine.
    Io ho fatto la prova con un'immagine 200x50 e l'ho fatta visualizzare sotto la scritta.
    codice:
    import javax.swing.*;
    
    public class Finestra extends JFrame {
    
       private JLabel lblScritta;
       private JLabel lblImmagine;
    
       public Finestra() {
          java.awt.Container c = getContentPane();
          c.setLayout( null );
          
          String str = "<html><center>CONGRATULAZIONI HAI VINTO!!!
    
    ";
          str +=       "Per giocare di nuovo
    ";
          str +=       "seleziona Nuova partita dal menu file
    ";
          str +=       "altrimenti esci per terminare
    
    ";
          str +=       "GRAZIE PER AVER PARTECIPATO!!</center></html>";
          
          lblScritta = new JLabel( str );
          lblScritta.setBounds(90, 20, 200, 150);
          
          lblImmagine = new JLabel( new ImageIcon("tuaImmagine.gif") );
          lblImmagine.setBounds(90, 200, 200, 50);
          
          c.add( lblScritta );
          c.add( lblImmagine );
          
          setTitle("Finestra di prova");
          setResizable( false );
          setDefaultCloseOperation( EXIT_ON_CLOSE );
          setSize(400, 300);
          setVisible( true );
       }
    
       public static void main(String [] srgs) {
          Finestra fin = new Finestra();
       }
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    107
    Ciao grazie per l'aiuto, se devo dire la verità quello era l'ultima cosa che era fatta con il vecchio stile e che non avevo modificato, ma cmq .. ora l'unica cosa che manca e l'audio, ma non riesco a metterlo.

    Qualcuno sa come aiutarmi?

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    107
    Ciao a tutti ho trovato questo codice:

    import java.awt.*;
    import java.io.FileInputStream;
    import java.applet.*;
    import sun.audio.*;
    //import hsa.Console;
    import java.awt.*;
    import java.io.FileInputStream;
    import java.applet.*;
    import sun.audio.*;
    //import hsa.Console;
    import javax.swing.*;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import java.applet.*;

    public class PlayMusic
    {
    static JTextArea Musicarea;

    JFrame frame3;
    // Create an array for five pieces of music
    static AudioData[] audioData = new AudioData [4];
    static AudioDataStream[] audioStream = new AudioDataStream [4];
    static ContinuousAudioDataStream[] continuousAudioDataStream =new ContinuousAudioDataStream [4];

    public void Music ()

    {
    frame3 = new JFrame ("Box");
    frame3.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
    addComponentsToPane3 (frame3.getContentPane ());

    frame3.pack ();
    frame3.setSize (330, 300);
    frame3.setLocationRelativeTo (null);
    frame3.setVisible (true);
    }


    public void addComponentsToPane3 (Container pane3)
    {
    pane3.setLayout (null);
    Musicarea = new JTextArea ();
    Musicarea.setEditable (false);

    Musicarea.setBounds (0, 0, 330, 210);
    pane3.add (Musicarea);
    }

    public static void main (String[] args)
    {
    char c;
    int choice, newChoice;
    int ch = 0;

    loadMusic ("D:\\Documents and Settings\\Marshall\\Desktop\\media_0.wave", 0);
    loadMusic ("D:\\Documents and Settings\\Marshall\\Desktop\\media_1.wave", 1);
    loadMusic ("D:\\Documents and Settings\\Marshall\\Desktop\\media_2.wave", 2);
    loadMusic ("D:\\Documents and Settings\\Marshall\\Desktop\\media_3.wave", 3);
    choice = (int) (Math.random () * 4);
    String t=""+choice;
    //Musicarea.setText ("\nPlaying song #" + choice);
    int i=0;
    while (i<4)
    {
    i++;
    System.out.println(choice);
    //Musicarea.setText ("\nPlaying song #" + choice);
    //System.out.println(t);
    //Musicarea.setText(t);
    loop (choice);
    //ch = c.getChar ();
    if (ch == 'q')
    break;
    do
    newChoice = (int) (Math.random () * 4);
    while (choice == newChoice);
    AudioPlayer.player.start();
    stop (choice);
    choice = newChoice;

    }
    } // main method


    static void loadMusic (String fileName, int index)
    {
    try
    {
    FileInputStream fis = new FileInputStream (fileName);
    AudioStream tempAudioStream = new AudioStream (fis);
    audioData [index] = tempAudioStream.getData ();
    audioStream [index] = null;
    continuousAudioDataStream [index] = null;
    }
    catch (Exception e)
    {
    System.out.println ("Unable to load " + fileName + ": " + e);
    System.exit (0);
    }
    } // loadMusic method

    static void loop (int index)
    {
    System.out.println("Index====="+index);
    continuousAudioDataStream [index] = new ContinuousAudioDataStream (audioData [index]);
    AudioPlayer.player.start (continuousAudioDataStream [index]);

    } // loop (void)

    static void play (int index)
    {
    audioStream [index] = new AudioDataStream (audioData [index]);
    AudioPlayer.player.start (audioStream [index]);
    } // play (void)

    static void stop (int index)
    {
    if (audioStream [index] != null)
    AudioPlayer.player.stop (audioStream [index]);
    if (continuousAudioDataStream [index] != null)
    AudioPlayer.player.stop (continuousAudioDataStream [index]);
    } // stop ()
    } // PlayMusic class



    ma mi da queste eccezioni:

    warning: sun.audio.AudioData is Sun propetary API an may be removed in a future realase
    sun.audio.AudioDataStream
    sun.audo.ContinuousAudioDataStream
    sun.audio.AudioPlayer

    Come si risolvono queste eccezioni? perchè non mi trova il file audio?

    Risolto questo vorrei mettere tutto all'interno di una finestra e far andare l'audio in loop.

    Spero possiate aiutarmi

    Marshall

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.