第1章 “Minim” 视觉加工厂:AudioBuffer类之get()方法
来源:互联网 发布:开淘宝店保证金怎么交 编辑:程序博客网 时间:2024/04/30 11:41
AudioBuffer是一个相当于单通道流式音频的浮点样本缓冲区。其只可读,但使用toArray方法可以获取缓冲区样本的副本。实际上,在绘制声波形时,我们应该使用toArray方法,而不是迭代缓冲区本身。因为在调用get方法期间,缓冲区中的样本可能会被新的样本所替代,从而导致波形似乎有不连续的地方。
get()方法
简要概述
获取缓冲区中的第i个样本。 该方法不会做边界检查,所以可能会抛出一个异常。
基本语法
float get(int i)
参数
i — int: 您想要获取的样本的角标
返回
float:第i个样本
相关
AudioBuffer
实例演示
/** * 此例说明了如何使用AudioPlayer的AudioBuffer对象 * 播放音乐时绘制其波形和音级 * 这些相同的AudioBuffer对象同样适用于AudioInput, AudioOuput, and AudioSample, * 因此,在这些情况下,相同的绘图代码也会起作用。 * */import ddf.minim.*;Minim minim;AudioPlayer groove; //音频播放器void setup(){ size(1024, 200); minim = new Minim(this); groove = minim.loadFile("groove.mp3", 1024); //导入音频文件 groove.loop(); //循环播放}void draw(){ background(0); stroke( 255 ); // 绘制波形 // left.get()和right.get()的返回值会在-1到1之间 // 所以我们需要放大它们才能看到波形 // 注意: 如果文件是单声道,left.get()和right.get()将返回相同的值。 for(int i = 0; i < groove.bufferSize() - 1; i++){ float x1 = map( i, 0, groove.bufferSize(), 0, width ); float x2 = map( i+1, 0, groove.bufferSize(), 0, width ); line( x1, 50 + groove.left.get(i)*50, x2, 50 + groove.left.get(i+1)*50 ); line( x1, 150 + groove.right.get(i)*50, x2, 150 + groove.right.get(i+1)*50 ); } noStroke(); fill( 255, 128 ); // level方法返回的是该音频当前缓冲区的RMS(均方根)值 // 更多访问: http://en.wikipedia.org/wiki/Root_mean_square rect( 0, 0, groove.left.level()*width, 100 ); rect( 0, 100, groove.right.level()*width, 100 );}
运行结果:
原文链接
http://code.compartmental.net/minim/audiobuffer_method_get.html
阅读全文
0 0
- 第1章 “Minim” 视觉加工厂:AudioBuffer类之get()方法
- Android之小小图片加工厂
- Android之小小图片加工厂
- Processing-Minim翻译----------Class Minim
- [1]OkHttp介绍之Get、Post方法
- 计算机视觉之基于聚类的分割方法
- HBase之get方法
- CSS2.1 第9章 视觉格式化模型
- [Wf2014]Metal Processing Plant(金属加工厂) 之这是小少主我用二分答案用得最6的一次(所有数据共1S)
- 《计算机视觉-一种现代方法(第2版)》读书笔记六:应用之图像搜索和检索
- 第26节 Get和Set方法
- Java之HashMap get方法
- Hibernate常用方法之get
- 网络爬虫之get方法
- 《计算机视觉-一种现代方法(第2版)》读书笔记四:中层视觉
- 《计算机视觉-一种现代方法(第2版)》读书笔记五:高层视觉
- tornado 3.0.1 学习之GET POST方法
- Object-C之set方法,get方法
- Hive的嵌入安装
- 冒泡排序
- python_20171120_read_csv读取数据编码问题
- shadowsocks-libev安装配置指南
- 关于X86汇编语言学习的随记-8259.8254.A/D转换.D/A转换。键盘扫描。LED7段数码管显示
- 第1章 “Minim” 视觉加工厂:AudioBuffer类之get()方法
- linux下安装redis
- linux
- Java多态
- spring cloud config
- 设计模式之单例模式简介
- 利用字典实现多级菜单效果
- 线性插值漫谈
- 猜数游戏