выбор опроса в поиске из приложения обработки - PullRequest
0 голосов
/ 29 декабря 2018

Я делаю простое приложение для обработки презентации, которое в настоящее время выполняет одно: оно слушает микрофон и эмулирует событие нажатия клавиши со стрелкой вправо, когда слышит звук.Я использую его для синхронизации synth с искателем OSX, поэтому при воспроизведении музыки он перебирает файлы папки, как если бы я неоднократно нажимал стрелку вправо на клавиатуре.

Моя проблема в том, что приложение застревает при попадании в последний файл в папке.Приложение должно знать об этом, чтобы оно могло эмулировать событие нажатия левой стрелки и событие нажатия клавиши со стрелкой вниз, чтобы перейти в каталог и продолжить итерацию.

Я пытался вызвать яблочный скрипт из обработкидля этого, который работает, но он слишком медленный и отвлекает внимание от искателя, а затем возвращает его обратно, который выглядит просто глючно (что важно, так как я делаю это приложение для презентации).

Полагаю, я мог бы использовать демон, который опрашивает, какой элемент в данный момент выбирается в искателе, и отправлять этот путь в приложение обработки, и предпринимать действия, если путь не меняется после нажатия клавиши;но тогда я не уверен, как это сделать.Может ли python или bash опросить такую ​​информацию из поиска?

спасибо!

import processing.sound.*;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
Amplitude amp;
AudioIn in;
Robot robot;

void setup() {
  size(1, 1);  
    try { 
    robot = new Robot();
  } catch (AWTException e) {
    e.printStackTrace();
    exit();
  }

  Sound s = new Sound(this);
  s.inputDevice(3);
  // select audio device ; if not available will fall back to default input
  amp = new Amplitude(this);
  in = new AudioIn(this, 0);
  in.start();
  amp.input(in);
  in.play();
  // playback of audio input : will larsen if you use computer's mic
}      

void draw() {
  // println(amp.analyze());
  if(amp.analyze()>0.3){
    println("go");
    // if sound is louder than 0.3 press right key
    robot.keyPress(KeyEvent.VK_RIGHT);
    robot.keyRelease(KeyEvent.VK_RIGHT);

    delay(200); 
    // prob not the right delay
}
}
...