音频播放库,提供了易于使用的类,记录、分析和合成声音的办法。
你可以直接使用Processing的菜单->工具->添加工具->Libraries->搜索Minim下载即可
基本的结构
// 头
import
ddf.minim.*// 库引用
Minim minim // 申请minim对象
AudioPlayer player// 申请音乐对象
// 初始化
minim = new
Minim(this)// 初始化minim对象
// 像读图的方法一样 在工程目录下的data文件夹里读取文件,
// 也可以读取绝对地址的文件
player = minim.loadFile("lty.mp3")
// 运作
player.play()// 播放
常用方法
Minim 对象
loadFile("String")// 读取音频文件
AudioPlayer 对象
play() // 播放
isPlaying() // 正在播放?
pause() // 暂停
rewind() // 倒带,回到开头
bufferSize() // 音乐缓冲数据大小
position()// 当前播放位置
length() // 音乐数据长度
left.get() // 左声道数据提取
right.get()// 右声道数据提取
示例
import
ddf.minim.*
Minim minim
AudioPlayer player
void
setup() {
size(512,200)
// 通过 Minim 可以加载文件
minim = new
Minim(this)
// 像读图的方法一样 在工程目录下的data文件夹里读取文件
// 也可以读取绝对地址的文件
player = minim.loadFile("lty.mp3")
}
void
draw() {
background(0)
stroke(255)
// 绘制波形
// 由 left.get() 和 right.get() 返回的值将是-1 和 1 之间,
// 所以需要映射到合适的大小
// 如果是MONO单声道文件,left.get() 和 right.get() 将返回相同的值
for
(int
i=0i<player.bufferSize() -1i++) {
float
x1 = map( i, 0, player.bufferSize(), 0, width )
float
x2 = map( i+1, 0, player.bufferSize(), 0, width)
line( x1, 50
+ player.left.get(i)*50, x2, 50
+ player.left.get(i+1)*50
)
line( x2, 150
+ player.right.get(i)*50, x2, 150
+ player.right.get(i+1)*50
)
}
// 画一条线以显示歌曲当前播放的位置
float
posx = map(player.position(), 0, player.length(), 0, width)
stroke(0,200,0)
line(posx, 0, posx, height)
if
( player.isPlaying() )
{
text("Press any to pause playback.", 10, 20
)
}
else
{
text("Press any key to start playback.", 10, 20
)
}
}
void
keyPressed()
{
if
( player.isPlaying() ) {
player.pause()
}
// 如果播放到文件末尾
// 我们使他再播一遍
else
if ( player.position() == player.length() ) {
player.rewind()
player.play()
} else
{
player.play()
}
}
方式1:在线安装打开Processing,选择 【工具】-【添加工具】,打开Contribution Manager
然后选择Libraries,搜索minim。选择Minim库,再选择Install。等待安装完成即可。
方式2:离线安装
将minin.zip文件解压到:此电脑-文档-Processing-libraries 目录下,如下图所示。【注意,避免出现minim文件夹下又嵌套一个minim文件夹的情况】
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)