現在、私はSparkfun Guide to Processingを使用して処理を学習しています。これまでの素晴らしい本!しかし今、私は第11章:Minimライブラリを使ってオーディオを録音するチュートリアルに悩まされています。Minimでget.LineInを使用してサンプルを録音するときのヌルポインタ例外
このマニュアルで説明しているように、左または右を押してサンプルを記録しようとすると、Null Pointer Exceptionが発生します。私はここで何が間違っているのか知りたいです。私はそれを解決することに問題があります。私はそれが完全にシンプルなものだと確信していますが、私はそれを見ることができません。この章でダウンロードするサンプルコードがいくつかありますが、この特定のスケッチは含まれていません。
ありがとうございました!
は、ここでNULLポインタ(彼らがクラッシュするスケッチを引き起こしているとは思えなかったとして、私は前に含まれていなかったいくつかの行を含めるように編集)コードです:
==== JavaSound Minim Error ====
==== Error obtaining new output stream:/Users/*edited full path*/soundboard/data/right.wav (No such file or directory)
==== JavaSound Minim Error ====
==== Error obtaining new output stream: /Users/*edited full path*/soundboard/data/left.wav (No such file or directory)
java.lang.NullPointerException
at ddf.minim.javasound.JSStreamingSampleRecorder.samples(JSStreamingSampleRecorder.java:177)
at ddf.minim.SignalSplitter.samples(SignalSplitter.java:112)
at ddf.minim.javasound.JSAudioOutput.run(JSAudioOutput.java:84)
そして、ここで私はコードですスケッチのために使用:
import ddf.minim.*;
Minim minim;
AudioInput mic;
AudioRecorder left;
AudioRecorder right;
AudioSample Pright;
AudioSample Pleft;
void setup(){
size(800,900);
minim = new Minim(this);
mic = minim.getLineIn();
right = minim.createRecorder(mic,"data/right.wav");
left = minim.createRecorder(mic, "data/left.wav");
};
void draw(){
};
void keyPressed(){
//begin left record
if(keyCode == LEFT){
if(left.isRecording()){
left.endRecord();
left.save();
}
else{
left.beginRecord();
};
};
//begin right record
if(keyCode == RIGHT){
if(right.isRecording()){
right.endRecord();
right.save();
}
else{
right.beginRecord();
};
};
//play the right sample
if(keyCode == UP){
Pright = minim.loadSample("right.wav");
Pright.trigger();
};
//play the left sample
if(keyCode == DOWN){
Pleft = minim.loadSample("left.wav");
Pleft.trigger();
};
};
完全なスタックトレースを投稿できますか?スケッチのどの線がNPEを投げるかを知る必要があります。スタックトレースをコピーしたときに、その部分をカットした可能性があります。 –
私は野生の推測をしましょう。 Pright = minim.loadSample( "right.wav");あなたは完全なパスを与えていないので、この行はサウンドファイルを見つけることができません? – Max
@Maxこれは処理です。それはスケッチディレクトリを持っていて、通常はフルパスを与えません。 –