Как вы автоматически запускаете другую фоновую песню в обработке? - PullRequest
1 голос
/ 18 апреля 2020

Когда заканчивается песня (возраст согласия), как мне начать еще одну песню после ее окончания? Это то, что я до сих пор.

import processing.sound.*;
SoundFile file; 

void setup() {
  file = new SoundFile(this, "neworder.mp3");
  file.play();
  file.amp(0.25);
}

Ответы [ 2 ]

0 голосов
/ 18 апреля 2020

К сожалению, ссылка на *1001* processing.org * не содержит несколько полезных функций класса, таких как percent() или position()

Вы можете сделать что-то вроде:

import processing.sound.*;
SoundFile file; 

void setup() {
  file = new SoundFile(this, "neworder.mp3");
  file.play();
  file.amp(0.25);
}

void draw(){
   if(file.percent() >= 99.8){
      println("track pretty close to done: cue out / cross fade here");
      file.stop();
   }

   background(0);
   text(file.percent(),5,15);
}

Затем вы можете загрузить или воспроизвести другую дорожку или еще лучше:

  1. загрузить две дорожки в setup(), но воспроизвести только одну
  2. когда первая дорожка близка к завершению, начните вторую дорожку с 0 громкости
  3. , используйте lerp() для интерполяции громкости первой дорожки вниз и инвертированной значение громкости, чтобы поднять второй трек с красивым перекрестным затуханием

Удачи!

0 голосов
/ 18 апреля 2020

Метод setup () вызывается только один раз при обработке. Когда обработка запускается, она постоянно вызывает встроенный метод draw () в al oop.

. Здесь вам нужно проверить, закончилась ли песня, и загрузить новую.

void draw() {
    background(200, 100, 50,255);

     // YOUR CODE HERE TO CHECK IF SONG HAS FINISHED AND PLAY A BETTER SONG LIKE PO BOYDs - BLUE THREE ;)
}
...