audio
El objeto audio es un objeto JavaScript para usar con roNodeJs que permite la reproducción de audio replicando la funcionalidad del elemento de audio HTML5.
IDL de audio
interface Audio {
// error state
readonly attribute MediaError error;
// network state
attribute String src;
readonly attribute String currentSrc;
readonly attribute unsigned short networkState;
const unsigned short NETWORK_EMPTY = 0;
const unsigned short NETWORK_IDLE = 1;
const unsigned short NETWORK_LOADING = 2;
const unsigned short NETWORK_NO_SOURCE = 3;
void load();
String canPlayType(String type);
// ready state
readonly attribute unsigned short readyState;
const unsigned short HAVE_NOTHING = 0;
const unsigned short HAVE_METADATA = 1;
const unsigned short HAVE_CURRENT_DATA = 2;
const unsigned short HAVE_FUTURE_DATA = 3;
const unsigned short HAVE_ENOUGH_DATA = 4;
readonly attribute boolean seeking;
// playback state
attribute double currentTime;
readonly attribute double duration;
readonly attribute boolean paused;
attribute double defaultPlaybackRate;
attribute double playbackRate;
readonly attribute boolean ended;
attribute boolean autoplay;
attribute boolean loop;
void play();
void pause();
void setSyncParams(String domain, String sync_id, String iso_timestamp);
// controls
attribute double volume;
attribute boolean muted;
// BrightSign extensions
attribute String pcmaudio;
attribute String compaudio;
attribute int x-bs-stream-timeout;
attribute String x-bs-audio-mode;
// Present but unimplemented
attribute String preload;
readonly attribute TimeRanges buffered;
readonly attribute double initialTime;
readonly attribute Date startOffsetTime;
attribute boolean controls;
readonly attribute TimeRanges played;
readonly attribute TimeRanges seekable;
readonly attribute TextTrack[] tracks;
MutableTextTrack addTrack(String kind, optional String label, optional String language);
};Creación de objetos
Para crear un objeto audio, primero cargue el módulo brightsign/audio usando el método require(). Luego cree una instancia de la clase audio usando el siguiente ejemplo:
var audio_class = require("@brightsign/audio");
var audio_player = new audio_class();Audio
Use esta interfaz para crear objetos audio.
Evento
buscado: Este evento se activa cuando el medio vuelve en bucle al inicio.
Métodos
load()
void load()Activa el procesamiento de src. cargar inicia la reproducción hasta el punto en que está listo para reproducir el primer fotograma. Si reproducción automática está establecido, también inicia la reproducción. readyState y networkState se modifican y se activan múltiples eventos a medida que comienza la reproducción.
canPlayType()
String canPlayType(String type)Devuelve si el tipo MIME pasado puede mostrarse en el reproductor BrightSign.
play()
void play()Inicia o reanuda la reproducción.
pause()
void pause()Pausa la reproducción.
setSyncParams()
void setSyncParams(String domain, String sync_id, String iso_timestamp)Esta extensión de BrightSign está documentada en esta página.
Parámetros de audio
- src string: Contiene la URL de un recurso multimedia que se usará en el elemento. Actualmente solo se admiten URL de archivos, incluidas URL relativas al script actual y un URI file:/// con una ruta absoluta del sistema de archivos en el reproductor. La URL devuelta al leer este valor nuevamente siempre es absoluta con el protocolo file: al inicio.
- currentSrc string: Contiene la URL del recurso multimedia que está usando el elemento.
- networkState unsigned short: Un enum que indica el estado actual de la obtención del contenido multimedia. Este atributo pasa por los estados a medida que se selecciona src y comienza la reproducción, pero debido a que actualmente el soporte es solo para archivos, no es tan dinámico como cuando se usa con HTTP. Los valores posibles son:
- NETWORK_EMPTY = 0,
- NETWORK_IDLE,
- NETWORK_LOADING,
- NETWORK_NO_SOURCE
- readyState unsigned short: Indica el estado de preparación del contenido multimedia. Este atributo pasa por los estados a medida que se selecciona src y comienza la reproducción. Los valores posibles son:
- HAVE_NOTHING = 0,
- HAVE_METADATA,
- HAVE_CURRENT_DATA,
- HAVE_FUTURE_DATA,
- HAVE_ENOUGH_DATA
- buscando boolean: Indica si el contenido multimedia está buscando una nueva posición.
- horaActual double: Especifica el tiempo de reproducción actual en segundos como un número de punto flotante. Actualmente la búsqueda no es compatible, y establecer este atributo no tiene efecto. Si la reproducción se completa, esto devuelve el mismo valor que duration
- duración double: Especifica la duración actual del contenido multimedia en segundos como un número de punto flotante.
- en pausa boolean: Refleja si la reproducción multimedia está actualmente en pausa.
- defaultPlaybackRate double: Esto no puede establecerse en ningún valor distinto de 1.0, y siempre devuelve 1.0 (solo se admite la reproducción a velocidad normal).
- velocidad de reproducción double: Esto no puede establecerse en ningún valor distinto de 1.0, y siempre devuelve 1.0 (solo se admite la reproducción a velocidad normal).
- terminado boolean: Refleja cuando la reproducción multimedia ha llegado al final del contenido multimedia.
- reproducción automática boolean: Indica si la reproducción debe comenzar automáticamente cuando el contenido multimedia esté disponible para reproducirse sin interrupciones.
- bucle boolean: Establece si la reproducción debe repetirse o no. El valor se utiliza cuando se llama a load. Configurarlo una vez que la reproducción ha comenzado no tendrá efecto.
- volumen double: Controla el volumen de la reproducción
- silenciado boolean: Controla el silenciamiento y la reactivación del audio
- pcmaudio string: Enruta audio PCM decodificado a las salidas en la cadena. Las salidas disponibles son analógico, earc, o una salida USB (por ejemplo, usb:A.0). Se pueden especificar múltiples salidas utilizando un delimitador de punto y coma (por ejemplo, earc; analógico)
- compaudio string: Enruta audio comprimido directamente a eARC sin decodificación. Solo puede establecerse en earc .
- x-bs-stream-timeout int: Controla los tiempos de espera durante la transmisión.
- x-bs-audio-mode string: Controla la mezcla descendente de audio a mono. Los valores posibles son MonoLeftMixdown, MonoRightMixdown, y el valor predeterminado que es Estéreo. Con esto, dos reproductores de audio pueden emitir a una sola salida estéreo, uno al canal izquierdo y el otro al canal derecho.
Métodos y propiedades no implementados
- precargar
- almacenado en búfer
- initialTime
- horaDeDesplazamientoInicial
- controles
- jugado
- buscable
- pistas
Ejemplos
const audio_class = require("@brightsign/audio");
let audio_player = new audio_class();
audio_player.src = "/storage/sd/file.mp4"
audio_player.volume = .5;
audio_player.load();
audio_player.play();let setupAudio = (audio, setupObj) => {
for (let [key, val] of Object.entries(setupObj)) {
audio[key] = val;
}
}
let interval = setInterval(()=>{}, 10000);
const audio_class = require("@brightsign/audio");
let audio = new audio_class();
let settings = {
src: '/storage/sd/file.mp4',
autoplay: true,
loop: false,
volume: .5,
pcmaudio: "analog"
};
setupAudio(audio, settings);
audio.load();
audio.addEventListener("ended", () => {
audio.src = '';
audio = null;
clearInterval(interval);
process.exit(0);
});