分类分类
大小:1.6 MB更新:2026-08-31
类别:其他应用系统:Android
这个小例子主要用到android手势部分和Mediaplayer部分的知识。
手势部分没啥问题,我们可以通过MotionEvent中定义的Event Code来判断当前手势的状态(按下或者释放等)
imageButton_white1.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View view, MotionEvent motionEvent) {
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
play(R.raw.white1);//这个时候创建播放要用的资源文件
imageButton_white1.setImageResource(R.drawable.whiteback1);
}
if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
imageButton_white1.setImageResource(R.drawable.white1);
}
return false;
}
});
复制代码
Mediaplayer部分目前还有个问题没有解决:
每次按下键盘时我都要调用相应的音符
mediaPlayer01 = MediaPlayer.create(Piano.this, resource);
随着按键次数的增加create的次数也随着增加。
只要create的次数到了32次之后,再按键盘就不会响了,这个时候只要改变一下屏幕的方向程序就可以继续运行。
我的理解是create后的资源没有被释放导致的。
但我在代码中也加入了
mediaPlayer01.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer arg0) {
mediaPlayer01.release();
Toast.makeText(Piano.this, "资源释放了!", Toast.LENGTH_SHORT).show();
}
});
复制代码
这样的监听代码。在资源文件播放完成后释放。但运行过程中这部分没有起作用(因为Toast部分没有执行)。
目前还不知道是什么原因造成的。
PS: 今天找到一个解决方法
不使用mediaplayer的监听事件来释放mediaplayer资源了。直接在play的时候先release一次,然后create资源文件。
不过这种做法稍微有点不大合理
为什么资源文件在事件触发的时候才create就不会被正常监听到呢。如果哪位同学知道原因的请帮忙解答下
百度网盘绿色免安装版其它工具366.81 MBv7.37.0.5官方版2026-08-31
下载Android例子源码点击换肤例子整体背景更换其他应用1.75 MB2026-07-06
下载GpsTracker源码其他应用93.24 KB2026-07-06
下载Android一个简约番茄时钟的实现效果源码其他应用189 KB2026-07-06
下载安卓颜色选择器例子源码其他应用21.35 KB2026-07-06
下载安卓VPN开发源码其他应用6.12 MB2026-07-06
下载Android 仿美图秀秀和IOS系统的相机胶卷其他应用370.09 KB2026-07-06
下载Android项目源码通用工程维护监控录音拍照位置上传其他应用2.88 MB2026-07-06
下载github客户端应用源码 安卓版其他应用1.01 MB2026-07-06
下载Android可转动轮盘切换 Fragment选择菜单其他应用10.3 MB2026-07-06
下载Android 完整的通讯录项目源码其他应用4.31 MB2026-07-06
下载Android 触屏手势识别GestureTest其他应用1.32 MB2026-07-06
下载Android 连接Wifi功能其他应用8.81 MB2026-07-06
下载
