如何使用Processing播放声音

如何使用Processing播放声音,第1张

Minim库

音频播放库,提供了易于使用的类,记录、分析和合成声音的办法。

你可以直接使用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文件夹的情况】


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11427897.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存