【问题标题】:Processing minim null pointer处理最小空指针
【发布时间】:2014-01-15 22:49:26
【问题描述】:

我正在使用 Minim 进行处理,但如果 minim 加载文件在另一个类中,我不知道如何播放文件。我同时使用了AudioSnippetAudioSample,它们都给了我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

【问题讨论】:

  • 您确定文件路径正确吗?
  • 变量 minimsamplesnippet 实际上不在您的 PlayAudio 类中。它们是全局变量,因此可能存在初始化顺序问题。尝试将它们放在您的 PlayAudio 类声明中。

标签: java processing minim


【解决方案1】:

只需将 minim = new Minim( this ); 放入设置块。如果您在 PlayAudio 类中执行此操作,您会得到 this 的错误参数。

工作代码:

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();
  }
}

【讨论】:

  • 我一直在读这个,最让我困惑的是所有的例子看起来都像你的,但是这些方法是什么时候调用的? - 谢谢
猜你喜欢
  • 2021-11-08
  • 2016-09-11
  • 1970-01-01
  • 2018-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-14
相关资源
最近更新 更多