🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

Q&A

解決済

1回答

1735閲覧

processing 映像・音声を用いた簡単なコンテンツ 上手くできないので教えて頂きたいです。

basho17

総合スコア1

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

0グッド

0クリップ

投稿2020/12/17 09:27

processing で、自分で考えたコンテンツを作成しようとしています。

後ろで、apex というゲームの映像を流しつつ、
マウスをクリックすると1/2の確率でランダムな音声が流れ、
45秒に一回、安置移動を促す音声を流し、
escボタンを押すと感謝の言葉を再生する

というコンテンツを作成しようと思っています。

以下がうまくいかない点です。

1、anti,finish の音源のところでNullPointerExceptionというエラーが出る
→anti = new FilePlayer(minim.loadFileStream( "安置.mp3" )); 以下4行を削除したら動きます。

2、グレーの画面になっていて映像が流れない
→映像を流すだけのプログラムでは実行できました。映像は62.5 MBです。

3、マウスをクリックすると1/2の確率でランダムに音声が出力されるプログラムにしているはずな
に、マウスを連打しても音声出力がなされない。

プログラミング初心者なので、根本的に全然違う可能性が大きいです。
丁寧に教えて頂けると幸いです。

発生している問題・エラーメッセージ

エラーメッセージ NullPointerException

全てのソースコード

processing

ソースコード

//ライブラリのインポート
import processing.video.;
import ddf.minim.
;
import ddf.minim.ugens.*;

//クラスの宣言
Minim minim; //Minimを使う場合は必ず宣言
AudioOutput out; //スピーカーから音を出す場合は必ず宣言
FilePlayer anti;
FilePlayer finish;
AudioPlayer[] sounds;
Movie movie; //新しい動画像を定義します

int count = 0;
int n = 1;
int s = 0;
int index;

void setup(){
size(1280, 720);//自分の動画像のサイズをチェックしてみてここを変更してください

movie = new Movie(this, "apex.mp4"); //動画像を読み取ります。ここの名称を変更してください
movie.play();//動画像再生

minim = new Minim(this);
out = minim.getLineOut();
anti = new FilePlayer(minim.loadFileStream( "安置.mp3" )); //wavファイルの読み込み
anti.patch(out);
finish = new FilePlayer(minim.loadFileStream( "感謝.mp3" )); //wavファイルの読み込み
finish.patch(out);
sounds = new AudioPlayer[] {
minim.loadFile("アーマー割.mp3"),
minim.loadFile("アーマー報告.mp3"),
minim.loadFile("ノック.mp3"),
minim.loadFile("ロー.mp3"),
minim.loadFile("倒した.mp3"),

};

frameRate(60);//1/60秒
}

void draw() {
//Loop回数加算
//countは1/60秒ごとに1増える
count++;

if (mousePressed) {
s=int(random(1, 2));

if (s%2==0) { sounds[index].pause(); index = int(random(sounds.length)); sounds[index].rewind(); sounds[index].play(); } if (count == 60*45*n){//45×n秒の時 anti.play(); n+=1; }

}
}

void keyPressed() {
if (key==ESC) {
finish.play();
}
}

補足情報(FW/ツールのバージョンなど)

processingは最新版です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

プログラミング初心者なので、根本的に全然違う可能性が大きいです

それでも足掻いて下さい。初心者だからそれでいいというわけでもなく、コンピュータはあなたが初心者だから忖度して動いてくれるわけでもないので。

1、anti,finish の音源のところでNullPointerExceptionというエラーが出る

antiやfinishがnullになっているということでしょうか。とてもありがちなパターンは、ファイルの配置が適切でなくてファイルを読めていない、というものですが、ファイルを読んで音を出すだけのサンプルプログラムを作ってみたらいかがでしょう。あと、IDE画面の下の方のコンソール画面になんらかのエラーメッセージがでていたりしませんか?

2、グレーの画面になっていて映像が流れない

→映像を流すだけのプログラムでは実行できました。映像は62.5 MBです。

少なくともこのプログラムを見る限り、映像を表示しているところが無いような。「映像を流すだけのプログラム」と見比べてみて下さい。多分、イベントハンドラがまるまる無くなっているとかそういうことじゃないかと思います。

3、マウスをクリックすると1/2の確率で

s=int(random(1, 2)); は、1以上2未満の値を発生して、その整数部分をとります。

投稿2020/12/17 11:17

thkana

総合スコア7703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

basho17

2020/12/18 02:58

1、ファイルが適切な場所に無かったことと、ファイルがmp3になっていなかったことが原因でした。 サンプルプログラムのおかげで発見出来ました。ありがとうございます。 2、image(movie, 0, 0, movie.width, movie.height);  movie.loadPixels();   updatePixels(); の3行が、void draw(){}内にありませんでした。すみません。 3、教えて頂きありがとうございます。これで、思ったように動きました。 最後に 自分が想定していたように動きました。返信して頂きありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問