En este ejemplo de programa HOST se reproduce un fichero de audio en distintas pantallas, segun la tecla que se pulsa (de 1 a 4). Para que funcione, es necesariocolocar el fichero de audio “aguaregadera.mp3” dentro de una carpeta llamada “audio” dentro de la carpeta “assets” de cada display.
Fichero displays.xml
<xml > <virtualDisplay width="3840" height="1248"> <display id="1" x="0" y="0" width="1280" height="768" /> <display id="2" x="1280" y="0" width="1280" height="768" /> <display id="3" x="2560" y="0" width="1280" height="768" /> <display id="4" x="0" y="1000" width="800" height="600" /> <display id="5" x="1000" y="1000" width="800" height="600" /> <display id="6" x="2000" y="1000" width="800" height="600" /> <display id="7" x="3000" y="1000" width="800" height="600" /> </virtualDisplay> </xml>
Codigo Host en Proccessing
int ANCHO=1280; //definir valores segun tamaño pantalla destino int ALTO=768; TACAPI miAPI; DisplaysHost displaysClient; void setup() { // Keystone will only work with P3D or OPENGL renderers, // since it relies on texture mapping to deform //fullScreen( P3D); size(80, 60, P3D); frameRate(16); //definicion de la API miAPI = new TACAPI(); //virtual screens displaysClient = new DisplaysHost("host"); } void draw() { //Programacion Juego displaysClient.beginDraw(); displaysClient.endDraw(); } void eventoTAC(TAC ta) { //tratamiento de tacs //ta.info(); } void mensajeRecibido(OscMessage theOscMessage) { //tratamiento mensaje osc } void keyPressed() { switch(key) { case ESC: displaysClient.disconnect(); super.stop(); break; case '1': displaysClient.pararAudio("aguaregadera.mp3",5); displaysClient.pararAudio("aguaregadera.mp3",6); displaysClient.pararAudio("aguaregadera.mp3",7); displaysClient.reproducirAudioLoop("aguaregadera.mp3",4); break; case '2': displaysClient.pararAudio("aguaregadera.mp3",4); displaysClient.pararAudio("aguaregadera.mp3",6); displaysClient.pararAudio("aguaregadera.mp3",7); displaysClient.reproducirAudioLoop("aguaregadera.mp3",5); break; case '3': displaysClient.pararAudio("aguaregadera.mp3",5); displaysClient.pararAudio("aguaregadera.mp3",4); displaysClient.pararAudio("aguaregadera.mp3",7); displaysClient.reproducirAudioLoop("aguaregadera.mp3",6); break; case '4': displaysClient.pararAudio("aguaregadera.mp3",5); displaysClient.pararAudio("aguaregadera.mp3",6); displaysClient.pararAudio("aguaregadera.mp3",4); displaysClient.reproducirAudioLoop("aguaregadera.mp3",7); break; } }
Retos de aprendizaje
Documentación
- Para añadir elementos multimedia a los gestores pintor, ver apartado Gestión de assets.
- reproducirAudio
Este método permite reproducir una vez el audio solicitado. Recibe los siguientes parámetros:
String id: identificador del audio. Es imprescindible que sea igual que el nombre del audio disponible en la carpeta del cliente.
int display: identificador del display que reproducirá el audio. Este valor debe coincidir con el valor id del currentDisplay del fichero displays.xml que tiene el display que reproducirá el audio.
- reproducirAudioLoop
Este método permite reproducir en loop un audio. Los parámetros que recibe son:
String id: identificador del audio (el mismo que el utilizado en reproducirAudio)
int display: identificador del display que reproducirá el audio (mismo requisito que en reproducirAudio)
- pararAudio
Este método permite parar un audio. Los parámetros que recibe son:
String id: identificador del audio (el mismo que el utilizado en reproducirAudio)
int display: identificador del display que reproducirá el audio (mismo requisito que en reproducirAudio)