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

Capitolo 41: Implementazione di un Audio Player.

 

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).

 

 
Vai all'inizio della pagina