NOTA! Questo sito utilizza i cookie e tecnologie simili.

Se non si modificano le impostazioni del browser, l'utente accetta. Per saperne di piu'

Approvo

Guida J2ME - 41: implementazione di un Audio Player

Guida J2ME, corso base java microedition

 

La porzione di codice riportata qui sotto rappresenta una MIDlet che permette di riprodurre un tono o un file audio wav.

 

Per motivi di spazio e leggibilità ho implementato solo la riproduzione di una nota fissa (La3, identificata dal valore 67) e solo il play, senza interruzioni (pausa-riprendi), di un unico file audio, che ho chiamato 'audio.wav'; con le conoscenze acquisite fino a questo punto, comunque, non dovrebbe risultare difficile creare MIDlet per la riproduzione dei file sonori un pò più complesse.

 

 

 

Ecco il codice (notate gli import di media e io e i blocchi try-catch per la cattura delle eccezioni, necessari quando si ha a che fare con risorse esterne o con il package media):

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.media.*;
import java.io.*;


public class Prova extends MIDlet
{
private Display d;
private Canvas miaCanvas;


public Prova()
{
miaCanvas = new MiaCanvas();
miaCanvas.repaint();
d = Display.getDisplay(this);
d.setCurrent(miaCanvas);
}

protected void startApp()
{
}

protected void pauseApp() { }

protected void destroyApp(boolean arg0)
{
notifyDestroyed();
}
}



class MiaCanvas extends Canvas
{
public MiaCanvas() // Costruttore
{
}

protected void paint(Graphics g) // Le classi che ereditano da Canvas devono sovrascrivere questo metodo
{
int h = this.getHeight();
g.setColor(5,25,100);
String messaggio1 = "Premi 1 per sentire il TONO (La3)";
String messaggio2 ="Premi 2 per riprodurre il file audio.";
g.drawString(messaggio1, 1, h/2-20, Graphics.TOP|Graphics.LEFT);
g.drawString(messaggio2, 1, h/2, Graphics.TOP|Graphics.LEFT);
repaint();
}



protected void keyPressed(int keyCode)
{
switch (keyCode)
{
case Canvas.KEY_NUM1:
try
{
Manager.playTone(67, 1000, 75);
}
catch (MediaException e)
{
e.printStackTrace();
}
break;



case Canvas.KEY_NUM2:
try
{
InputStream is = MiaCanvas.class.getResourceAsStream("audio.wav");
Player player = Manager.createPlayer(is, "audio/X-wav");
player.realize();
player.prefetch();
player.start();
}
catch(Exception e)
{
e.printStackTrace();
}
break;
}
}
}

 

 

 

Per testare questa MIDlet dovrete quindi creare un file audio e salvarlo con nome 'audio.wav' nella cartella 'res' del progetto aggiungendo il prefisso 'res/' al path (se volete solo provare la MIDlet sull'emulatore WTK, mettete il file nella cartella classes del progetto e specificate, come path per l'InputStream, solo il nome del file, come ho fatto nel codice della MIDlet riportato qui sopra).

Si consiglia di utilizzare file .wav di piccole dimensioni (qualche decina di kb).

 

 

Per un elenco completo (lista) dei tutorial e videotutorial su Java, Java 2D, Java 3D e J2ME, clicca qui


 
Libri e eBook sul linguaggio di programmazione Java:
 
 
ebook PDF "Java 3D: guida di base" di Francesco Milanese
 
 
 
 
 

 

Vai all'inizio della pagina