Sonidos en Business central

En ocasiones puede ser necesario reproducir un sonido mientras trabajamos, por ejemplo, un usuario mediante la aplicación móvil de Business central escanea un producto y queremos escuchar el típico "beep" de escaneado.

Business central no reproduce sonidos por lo que tenemos que crear el sonido "artificialmente", nuevamente nos apoyamos en los addins.

Aunque en esta ocasión el addin es extremadamente sencillo.

Localizamos el sonido que deseamos reproducir, yo he elegido el primero que ha aparecido en una búsqueda y lo he descargado en mp3 y extraído.

A continuación lo he convertido a base64 en esta página:

  • elegimos el archivo
  • elegimos formato de salida Data URI -- data:content/type;base64

y copiamos el resultado, lo guardamos, ... lo dejamos disponible para usarlo más adelante


A continuación en un nuevo proyecto de AL creamos una carpeta llamada Addin en la que crearemos un nuevo fichero llamado sound.al al que daremos forma de la siguiente manera:

controladdin "CreateSound"
{
    RequestedHeight = 1;
    RequestedWidth = 1;

    Scripts = './Addin/sound.js';
    procedure beep();
}

Ahora dentro de la misma carpeta creamos el fichero javascript que reproducirá el sonido sound.js:

function beep() {    
    var snd = new Audio("nuestra fuente base64 copiada");
    snd.play();
}

Ahora debemos sustituir el texto nuestra fuente base64 copiada por el resultado que nos ha generado la página Base64Guru respetando las comillas, debemos dejarlas, quedando así:


El código fuente del fichero estará disponible como siempre en github, no lo pego en el post porque des configuraría la página al ser muy extenso y visualizarse en una sola línea.

Por último debemos añadir nuestro control en la página que vayamos a mostrar en la aplicación.
Para la prueba he creado una página simple de tipo card que dispone de una acción que es reproducir el sonido:

page 50200 "Sound test"
{
    ApplicationArea = All;
    Caption = 'Sound test';
    PageType = Card;
    UsageCategory = Tasks;

    layout
    {
        area(content)
        {
            group(General)
            {
                Caption = 'General';

                usercontrol(CreateSound; CreateSound)
                {

                }
            }
        }
    }

    actions
    {
        area(Processing)
        {
            action(a1)
            {
                Caption = 'Probar sonido';
                Image = ViewComments;

                trigger OnAction()
                begin
                    CurrPage.CreateSound.beep();
                end;
            }
        }
        area(Promoted)
        {
            actionref(aa1; a1) { }
        }
    }
}

Este es el resultado:


Perdón, falta el sonido al pulsar: BEEP!!!! 😂😂

Espero que os sea de utilidad.

Como siempre el código fuente disponible en github.





Publicar un comentario

Añade comentario (0)

Artículo Anterior Artículo Siguiente