我正在使用Minim处理,但是我不知道如何播放文件,如果minim加载文件在另一个类中。我使用了AudioSnippet和AudioSample,它们都给了我NullPointerException。下面是一个PlayAudio类。
Minim minim;
AudioSample sample;
AudioSnippet snippet;
class PlayAudio {
PlayAudio() {
minim = new Minim(this);
sample = minim.loadSample("Audio/hover1.mp3", 2048);
snippet = minim.loadSnippet("Audio/hover1.mp3");
}
void playSnippet() {
sample.trigger();
snippet.play();
}
}另一个是标准处理setup()和draw()。按下鼠标时应播放文件。
import ddf.minim.spi.*;
import ddf.minim.signals.*;
import ddf.minim.*;
import ddf.minim.analysis.*;
import ddf.minim.ugens.*;
import ddf.minim.effects.*;
PlayAudio audio = new PlayAudio();
void setup() {
size(300, 300);
background(0);
}
void draw() {
if(mousePressed) {
audio.playSnippet();
}
}我所犯的错误是:
==== JavaSound Minim Error ====
==== Couldn't find a sketchPath method on the file loading object provided!
==== File recording will be disabled.
==== JavaSound Minim Error ====
==== Couldn't find a createInput method in the file loading object provided!
==== File loading will be disabled.
==== JavaSound Minim Error ====
==== Error invoking createInput on the file loader object: null
=== Minim Error ===
=== Couldn't load the file Audio/hover1.mp3发布于 2014-05-24 15:34:56
只需将minim = new ( this );放到安装块中即可。如果在PlayAudio类中这样做,则这个的参数是错误的。
工作代码:
import ddf.minim.*;
Minim minim;
AudioSample sample;
AudioSnippet snippet;
PlayAudio audio;
void setup() {
size(300, 300);
minim = new Minim(this);
audio = new PlayAudio();
background(0);
}
void draw() {
if (mousePressed) {
audio.playSnippet();
}
}
class PlayAudio {
PlayAudio() {
sample = minim.loadSample("Audio/hover1.mp3", 2048);
snippet = minim.loadSnippet("Audio/hover1.mp3");
}
void playSnippet() {
sample.trigger();
snippet.play();
}
}https://stackoverflow.com/questions/20816031
复制相似问题