質問: leap.getTip(finger); ellipse(fingerPos.x, fingerPos.y, 10, 10); if(fingerPos.x > 10 && fingerPos.x < 110 && fingerPos.y > 10+100*i && fingerPos.y < 50+100*i) /* ↑ ・mouseX,mouseYをリープモーションでとれる座標に変換 ・ここはiのような"変数"を使って横着すると、各四角ごとに音を変えるのは 難しいかもしれない。試行錯誤してみればなんとかなるかも(笑) */ { fill(150,150,150); rect(10,10+100*i,100,40); /* ↑ マウスカーソル(= リープで取得した指先の座標)が指定の位置に来たときのみ、 fillとrectを上書きする。 */ player.play(); /* ここで音を鳴らす。通し番号を付けた場合はplayerを変えて区別する */ } } } } void stop() { player.close(); //サウンドデータを終了 minim.stop(); super.stop(); } ``` 【エラー内容】NullPointerException JavaSound Minim Error error invoking createInput on the file loader object null
回答: > > 【エラー内容】NullPointerException > > JavaSound Minim Error > > error invoking createInput on the file loader object null > > > このエラーメッセージから、createInputがnullを返している(うまくいっていない)事が判りますから、 ``` player = minim.loadFile("piano14.mp3"); ``` でエラーが起きているものと考えられます。 原因となり得るのは、引数"piano14.mp3"しかありません。 Minim に、 > > the createInput method will search in the data folder, the sketch folder, handle URLs, and absolute paths. > > > との記載があります。 piano14.mp3というファイルはdataフォルダー等のcreateInputがファイルを探す場所に置かれていますか? ファイルの場所が間違えているなら、適切な場所にファイルを移すことで問題は解決するはずです。 dataフォルダー等の場所がどこか判らないのであれば、絶対パスでファイルを指定することで解決すると思います。