2010-08-10 17 views
13

Estoy desarrollando una aplicación mac que implica la reproducción de audio. Me gustaría pausar otros reproductores de audio cuando comienza nuestra reproducción.Controle iTunes desde una aplicación de cacao

cómo puedo
1) detectar que iTunes se está ejecutando
2) detectan que iTunes está jugando actualmente
3) hacer una pausa en itunes
4) reanudar itunes cuando haya terminado

también:
5) ¿Es la forma de pausar otros tipos de reproducción de medios también? audio y video en el navegador, por ejemplo?

Respuesta

18

Usted puede hacer eso con el siguiente código que está utilizando ScriptingBridge:

#import "iTunes.h" 
#import "Cocoa/Cocoa.h" 

int main() 
{ 
    iTunesApplication* iTunes = [SBApplication applicationWithBundleIdentifier:@"com.apple.iTunes"]; 

    // check if iTunes is running (Q1) 
    if ([iTunes isRunning]) 
    { 
    // pause iTunes if it is currently playing (Q2 and Q3) 
    if (iTunesEPlSPlaying == [iTunes playerState]) 
     [iTunes playpause]; 

    // do your stuff 

    // start playing again (Q4) 
    [iTunes playpause]; 
    } 
    return 0; 
} 

El archivo iTunes.h se genera mediante la ejecución de sdef /Applications/iTunes.app | sdp -fh --basename iTunes de una línea de comandos. El error unknown type name "tdta" se puede ignorar.

También necesita agregar ScriptingBridge.framework a los marcos vinculados.

Aquí también hay un enlace al ScriptingBridge documentation.

+0

¿Qué es iTunesEPlSPlaying? y hay una forma de detectar si el audio se está reproduciendo con rapidez? – quemeful

+0

¿qué tipo de datos es playerState? – quemeful

5

1) detectan que se está ejecutando iTunes

NSRunningApplication o Process Manager.

2) detectan que iTunes está jugando actualmente
3) hacer una pausa en itunes
4) reanudar itunes cuando haya terminado

Scripting Bridge.

5) ¿Está la manera de pausar otros tipos de reproducción de medios también?

Eso depende de la aplicación.

audio y video en el navegador, por ejemplo?

Cuestiones relacionadas