【BUG日记】【Processing】NullPointerException,unable to decode sound file "xxx"

890 阅读3分钟

本文正在参加「金石计划 . 瓜分6万现金大奖」

【日期】

2022/12/6

【问题】

报错:unable to decode sound file pig.mp3
想进行操作的是读取本地的图片或者音频,都会出现这个问题。
研究半天还一直以为是引入的 sound 库有问题。

音频的 bug

音频的 bug.png

### 图片的 bug

图片的 bug.png

【原因】

不知道什么原因,一直没法显示,或者为空。

【如何发现】

想给我的 pig 小 demo 项目添加音频的时候发现;在第一次使用读取本地图片的时候,也已经发现同是 png 类型格式的图片,有个图片就是不行。(肉眼可见

【如何修复】

读取出现的 bug修复途径(解决办法)
图片 png 类型读取不出来可以使用软件进行重新保存 png 格式类型,或导出其他格式类型,如jpg、jpge、png等(我使用的是 pptx 进行重新保存为 png 格式)
音频 mp3 类型 出现存在读取不到使用软件进行重新导出格式,或者换其他类型(如 wav、flac等其他类型,这里我是重新导出又失败,就选择是导出另外的 wav 格式的音频)
......

【详细修改】

图片 png 类型读取不出来(pptx 进行操作

① 找个随便找个地方(目录)新建一个 pptx,或者打开旧的 pptx(只要有 pptx 就行)。
② 图片拉入(拖入)到 pptx 里。
③ 右击进行导出,选择 png 格式

图片 png 类型读取不出来(pptx 进行操作.png

成功的效果

图片 png 类型读取不出来(pptx 进行操作)成功的效果.png

音频 mp3 类型读取不出来(格式工厂(pcfreetime.com))进行操作

格式工厂官方(下载)地址:www.pcfreetime.com/formatfacto…

音频 mp3 类型读取不出来-1.png 音频 mp3 类型读取不出来-2.png

成功的效果

音频 mp3 类型读取不出来,成功的效果.png

【额外小知识】如何添加外来 sound 库

① 点击“速写本”
② 点击“引用库文件...”
③ 点击“Manage Libraries...”
④ 弹出的对话框中搜索 'sound'
⑤ 找到 “Sound | ....”,点击
⑥ 点击右下角“Install”,进行安装
⑦ 安装成功,再次重复 ①和②,会发现有新出一个“Sound”库,再点击,会引入到代码中

image.png

【总结】

Processing 面向图像编程,有问题还是挺难找到原因的。还是需要继续去探索,玩起来!

主要需要注意的点:
① 注意 Processing 的提供的函数方法是否支持当前的音频、图片格式
② 尝试修改后缀来进行格式变化,不可行。

【代码分享】

// 引入新添的 “sound” 库(如何安装和引入可看 本文的额外小知识 )
import processing.sound.*; 

SoundFile song; // 音频
void setup(){
  size(200, 200);
  song = new SoundFile(this,"pig.mp3"); // 路径
  song.loop();
  //song.play();
}
void draw() {
  background(255);
  //float volume = map(mouseX, 0, width, 0, 1);
  //song.amp(volume);
}

文章小尾巴

文章写作、模板、文章小尾巴可参考:《写作“小心思”》
  感谢你看到最后,最后再说两点~
  ①如果你持有不同的看法,欢迎你在文章下方进行留言、评论。
  ②如果对你有帮助,或者你认可的话,欢迎给个小点赞,支持一下~
  我是南方者,一个热爱计算机更热爱祖国的南方人。

  (文章内容仅供学习参考,如有侵权,非常抱歉,请立即联系作者删除。)