3 votos

Es allí una manera de ajustar automáticamente los ajustes de EQ cuando la salida de audio de los cambios?

He particular de los ajustes de ECUALIZACIÓN me gusta usar para mis altavoces en casa, sin embargo cuando estoy usando mi portátil a altavoces o auriculares Bluetooth yo prefiero tener un plano de EQ. Es allí una manera de especificar diferentes ajustes de ECUALIZACIÓN para cada salida de audio y cambiar automáticamente la configuración correcta cuando la salida de audio se cambia?

1voto

user28428 Puntos 21

La lectura de la corriente de salida de audio da "Built-in de Salida" para los auriculares y altavoces internos, sin embargo, necesitamos ser capaces de discernir entre los auriculares y los altavoces. Para ello, puede utilizar el código de esta respuesta para crear un programa que comprueba si los auriculares están conectados o de otra salida de audio está en uso:

#include <CoreAudio/CoreAudio.h>
#include <iostream>

void updateEQ() {
    AudioDeviceID defaultDevice = 0;
    UInt32 defaultSize = sizeof(AudioDeviceID);

    const AudioObjectPropertyAddress defaultAddr = {
        kAudioHardwarePropertyDefaultOutputDevice,
        kAudioObjectPropertyScopeGlobal,
        kAudioObjectPropertyElementMaster
    };

    AudioObjectGetPropertyData(kAudioObjectSystemObject, &defaultAddr, 0, NULL, &defaultSize, &defaultDevice);

    AudioObjectPropertyAddress property;
    property.mSelector = kAudioDevicePropertyDataSource;
    property.mScope = kAudioDevicePropertyScopeOutput;
    property.mElement = kAudioObjectPropertyElementMaster;

    UInt32 dataSourceId = 0;
    UInt32 dataSourceIdSize = sizeof(UInt32);

    AudioObjectGetPropertyData(defaultDevice, &property, 0, NULL, &dataSourceIdSize, &dataSourceId);

    if (dataSourceId == 'hdpn') {
        std::cout << "Changed to headphones" << std::endl;
        system("osascript <<path to speaker EQ script>>");
    } else {
        std::cout << "Changed to not headphones" << std::endl;
        system("osascript <<path to other EQ script>>");
    }
}


int main(int argc, const char * argv[])
{
    updateEQ();
    return 0;
}

Cada EQ script es entonces una simple secuencia de comandos AppleScript que las actualizaciones de iTunes del EQ, por ejemplo, el speaker EQ secuencia de comandos es:

tell application "iTunes"
    set current EQ preset to (get first EQ preset whose name is "Speakers")
    set EQ enabled to true
end tell

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by: