开发工具:
文件大小: 1mb
下载次数: 0
上传时间: 2019-07-10
详细说明: 这个小例子主要用到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);//这个时候创建播放要用的资源文件 imageB utton_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就不会被正常监听到呢。如果哪位同学知道原因的请帮忙解答下
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
相关搜索: