栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

移动互联网开发教学案例学习-3

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

移动互联网开发教学案例学习-3

2021SC@SDUSC


目录

案例——Flappybird

声控版本

synchronized 基本用法

AudioRecord.getMinBufferSize()方法:

重写run()函数

通过分贝大小调整鸟的高度


案例——Flappybird

声控版本 是通过获取分贝,根据分贝的大小来设置鸟的高度。

synchronized 基本用法

synchronized 加锁时,使用的是对象的内置锁(intrinsic lock),任何 Java 对象都拥有这个锁,所以任何 Java 对象都可以用来给 synchronized 执行同步。synchronized 语句使用的对象由我们显式指定,synchronized 方法则用的是方法所属的那个对象的内置锁。

synchronized (mLock) {
	// Put your stuff here
}

静态方法不属于任何对象,那静态的 synchronized 方法又用的是哪个锁呢?任何 Java 对象都可以用来给 synchronized 执行同步。虽然静态方法不关联对象,但是,他却属于所在的那个类实例。

class Foo {
	public static synchronized void foo() {}
}

这里的 foo() 属于 class Foo。我们又知道,Java 里,class Foo 对应着这样一个类实例 Foo.class。Foo.class 也是一个对象,所以他能够被用来加锁。静态的同步方法,就是使用对应的类实例来进行加锁的。

AudioRecord.getMinBufferSize()方法:
  static final int BUFFER_SIZE= AudioRecord.getMinBufferSize(SAMPLE_RATE_IN_HZ,
            AudioFormat.CHANNEL_IN_DEFAULT,AudioFormat.ENCODING_PCM_16BIT);

(1)函数原型:

public static int getMinBufferSize (int sampleRateInHz, int channelConfig, int audioFormat)

(2)作用:返回成功创建AudioRecord对象所需要的最小缓冲区大小

(3)参数:

sampleRateInHz:默认采样率,单位Hz,这里设置为44100,44100Hz是当前唯一能保证在所有设备上工作的采样率;

channelConfig: 描述音频声道设置,这里设置为AudioFormat.CHANNEL_CONFIGURATION_MONO,CHANNEL_CONFIGURATION_MONO保证能在所有设备上工作;

audioFormat:音频数据的采样精度,这里设置为AudioFormat.ENCODING_16BIT;

(4)返回值:

返回成功创建AudioRecord对象所需要的最小缓冲区大小。 注意:这个大小并不保证在负荷下的流畅录制,应根据预期的频率来选择更高的值,AudioRecord实例在推送新数据时使用此值

如果硬件不支持录制参数,或输入了一个无效的参数,则返回ERROR_BAD_VALUE(-2),如果硬件查询到输出属性没有实现,或最小缓冲区用byte表示,则返回ERROR(-1)。

重写run()函数
 int r=mAudioRecord.read(buffer,0,BUFFER_SIZE);

r是实际读取数据的长度 。

 for (int i=0;i 

 将buffer内容取出,进行平方和运算。

double mean=v/(double)r;
double volume=10*Math.log10(mean);
mvolume=(int)volume;
Log.d(TAG,"分贝值"+volume);

平方和除以数据总长度,得到音量大小。

通过分贝大小调整鸟的高度

分贝大,上升距离大;分贝小,上升距离小。

处理鸟的高度:

int volume=audioRecordDemo.getMvolume(); 
bird.setY(bird.getY()-(volume-40)+mTmpBirdDis);

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/346225.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号