roAudioOutput
7 min
este objeto permite el control individual de las salidas de audio en el reproductor el equivalente en javascript es salidadeaudio docid 1lmxvybs20sgpgzzsc de creación de objetos el objeto roaudiooutput requiere un único parámetro de salida al crearse createobject("roaudiooutput", output as string) el parámetro salida puede tomar las siguientes cadenas “ninguno” "hdmi” o "hdmi 1" , "hdmi 2" , "hdmi 3" , o "hdmi 4 " para reproductores serie 5 con múltiples salidas “usb” «spdif» "analógico" “analog\ n” (n especifica la enumeración del puerto, lo cual es útil para modelos con múltiples puertos de audio analógico; también puede usar "analog 1" para especificar la salida analógica en un modelo con un único puerto de audio analógico) "earc" (solo au335) compatibilidad con múltiples salidas usb mediante la terminología de nombres de puertos usb "usb\ fid" donde fid es el friendly id del dispositivo según se documenta aquí rodeviceinfo getusbtopology docid\ yudjoipuduw rc3fyb zz obtención del friendly id el formato "usb\ fid" requiere conocer el fid del dispositivo de audio usb el fid se deriva del puerto físico al que está conectado el dispositivo y puede detectarse en tiempo de ejecución usando rodeviceinfo getusbtopology() para un reproductor con dos puertos, un dispositivo conectado directamente a un puerto tendrá un fid como a 0 o b 0 si un dispositivo está conectado a través de un hub, puede tener un fid como b/2 0 el siguiente ejemplo imprime todos los fid de dispositivos de audio usb di = createobject("rodeviceinfo") topo = di getusbtopology({xml true}) print topo ' ejemplo de salida para un dispositivo en el puerto b ' \<device> ' \<raw>4 1 1 0\</raw> ' \<fid>b 0\</fid> ' \<category>audio\</category> ' ' \</device> puede crear cualquier cantidad de objetos roaudiooutput puede haber múltiples instancias de este objeto que representen la misma salida de audio, pero en esos casos un objeto reemplazará a otro para conectar el objeto roaudiooutput al reproductor, consulte este ejemplo de uso de setpcmaudiooutputs obtener una salida de audio usb para crear una salida de audio usb, la cadena fid que se debe pasar a createobject es "usb " + fid , por ejemplo "usb\ b 0" para un dispositivo conectado directamente al puerto b, o "usb\ b/2 0" para un dispositivo en un hub conectado al puerto b el prefijo "usb " se compara sin distinguir entre mayúsculas y minúsculas; la parte fid debe coincidir exactamente con el valor devuelto por getusbtopology() la topología de audio usb debe establecerse antes de que el reproductor arranque no se admite conectar o desconectar dispositivos de audio usb después del arranque y no se actualizarán las rutas de audio disponibles si un dispositivo de audio usb no está presente en el momento del arranque, createobject("roaudiooutput", "usb\ fid") devolverá inválido para ese fid el siguiente script muestra cómo enrutar audio a un dispositivo usb, dado que se conoce el fid del dispositivo ' cree una salida de audio para el dispositivo usb en el puerto b usbout = createobject("roaudiooutput", "usb\ b 0") ' cree un reproductor y dirija su salida pcm al dispositivo usb player = createobject("roaudioplayer") player setpcmaudiooutputs(\[usbout]) ' se pueden pasar varios dispositivos usb (por ejemplo, puerto a y puerto b) juntos usbouta = createobject("roaudiooutput", "usb\ a 0") usboutb = createobject("roaudiooutput", "usb\ b 0") player setpcmaudiooutputs(\[usbouta, usboutb]) player playfile("sd /my mp3") ifaudiooutput setvolume(a as integer) as boolean establece el volumen de la salida especificada como un porcentaje representado por un entero entre 0 y 100 setvolume(parameters as roassociativearray) as boolean establece el volumen de la salida especificada utilizando los parámetros proporcionados db el volumen requerido en decibelios los valores permitidos son hasta 0 0, que representa el volumen máximo settone(treble as integer, bass as integer) as boolean establece los tonos agudos y graves de la salida especificada los valores enteros de agudos y graves pueden oscilar entre 1000 y 1000, donde 0 indica que no hay modificación de la señal de audio cada incremento representa un cambio de 0 01db setmute(a as boolean) as boolean silencia la salida especificada si verdadero este método está configurado en falso de forma predeterminada getoutput() as string devuelve la cadena con la que se creó el objeto roaudiooutput setaudiodelay(delay in milliseconds as integer) as boolean retrasa el audio para una salida de audio específica demorando las muestras decodificadas antes de que lleguen a esa salida los retrasos están limitados a 150 ms o menos actualmente, el software del sistema solo admite retrasos positivos; por lo tanto, si necesita adelantar el audio respecto al video, deberá utilizar rovideoplayer setvideodelay() en su lugar getplugstate( ) as boolean esta función devuelve verdadero si la salida correspondiente tiene un conector insertado, falso si no lo tiene, o inválido si el estado del conector no puede determinarse en el hardware o la versión del so actual esto solo es compatible con los reproductores md435, md455, ev445, ev455, xd236, xd1036, hd226 y hd1026 en bos 9 0 163 en adelante los métodos setvolume() y setmute() funcionan conjuntamente con la funcionalidad de volumen y silencio ofrecida por roaudioplayer la configuración de volumen de roaudioplayer afecta al volumen del decodificador de audio el flujo de audio se envía luego a las salidas asignadas, que tienen un nivel adicional de control de volumen habilitado por roaudiooutput el objeto roaudiooutput afecta el volumen absoluto (así como la configuración de silencio) para una salida de audio si dos reproductores transmiten a la misma salida, ambos se verán afectados por cualquier configuración implementada mediante roaudiooutput para controlar qué salidas de audio se conectan a las salidas del reproductor de audio generadas por roaudiooutput , utilice los métodos setpcmaudiooutputs() y setcompressedaudiooutputs(), que pueden utilizarse para rovideoplayer y roaudioplayer consulte la entrada de roaudioplayer para obtener una explicación adicional de estos métodos