上一次想用修改喇叭频率的方法来做出钢琴音,结果失败了。。。再接再厉,找到了OS系统中的12个基准音的音频文件,于是我邪恶又无耻的格式转换了。。。相关的实现还是基于官方安卓4.0的源码,在DialpadFragment.java中找到playTone方法,该方法就是用于实现播放按键定义音乐的。
将相关的音频文件按顺序放好,然后根据按键序号分别播放就可以了。
private void playTone(int tone, int durationMs) {
synchronized (mToneGeneratorLock) {
if(mediaPlayer != null){
mediaPlayer.stop();
}
mediaPlayer = MediaPlayer.create(getActivity(),pressogg[tone]);
mediaPlayer.start();
}
}
方法的两个变量一个是按键的序号,一个是响的时长。只需要新建一个int数组
private int[] pressogg = {
R.raw.dtmf0,
R.raw.dtmf1,
R.raw.dtmf2,
R.raw.dtmf3,
R.raw.dtmf4,
R.raw.dtmf5,
R.raw.dtmf6,
R.raw.dtmf7,
R.raw.dtmf8,
R.raw.dtmf9,
R.raw.dtmfstar,
R.raw.dtmfpound,
};
将相关的音频文件按顺序放好,然后根据按键序号分别播放就可以了。
按键音文件:http://download.csdn.net/detail/wcnmcsnm/5680935