如何解决加工 |根据声音改变背景亮度
又是我!
我希望我的背景亮度根据输出的声音而变化。我已经在 StackOverflow 上找到了 this post,但有几个问题:
- 我需要从桌面(例如 YouTube 或屏幕上发生的任何事情)实时获取声音。
- 背景颜色在变化,而不是单一颜色。
你帮了我很多in my other question。我知道我是初学者,可能很难修复我的代码。
谢谢,这是我的代码:
import processing.sound.*;
import java.awt.Robot;
import java.awt.AWTException;
import java.awt.Rectangle;
import java.awt.color.ColorSpace;
PImage screenshot;
Amplitude amp;
AudioIn in;
float ampt;
PImage photo;
void setup() {
fullScreen(2);
background(255);
amp = new Amplitude(this);
in = new AudioIn(this,0);
in.start();
amp.input(in);
}
void draw() {
screenshot();
ampt = amp.analyze();
float myColor = ampt*256;
tint((myColor),(myColor),(myColor));
background(extractColorFromImage(screenshot));
}
void screenshot() {
try{
Robot robot_Screenshot = new Robot();
screenshot = new PImage(robot_Screenshot.createScreenCapture
(new Rectangle(0,displayWidth,displayHeight)));
//screenshot.resize(width/4,height/4);
}
catch (AWTException e){ }
frame.setLocation(displayWidth/2,0);
}
color extractColorFromImage(PImage screenshot) { // Get average color
screenshot.loadPixels();
int r = 0,g = 0,b = 0;
for (int i = 0; i < screenshot.pixels.length; i++) {
color c = screenshot.pixels[i];
r += c>>16&0xFF;
g += c>>8&0xFF;
b += c&0xFF;
}
r /= screenshot.pixels.length; g /= screenshot.pixels.length; b /= screenshot.pixels.length;
return color(r,g,b);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。