闹钟铃声选择,使用了 TabHost 分了三个activity,分别是 1.应用raw文件下自带的音频文件。 2.手机系统自带的闹铃音频文件。 3.录音文件。
目的是要将音频的名称和时长获取出来显示在listview中。
获取raw文件中音频的名称和时长的方式如下:
Field[] fields = R.raw.class.getDeclaredFields();
int rawId;
String rawName;
for (int i = 0; i < fields.length; i++) {
try {
rawId = fields[i].getInt(R.raw.class);
rawName = fields[i].getName();
Log.i(TAG, "-----------rawId="+rawId+"----------");
Uri uri = Uri.parse("android.resource://"+this.getPackageName()+"/"+ rawId);
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(this, uri);
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.prepare();
int duration = mediaPlayer.getDuration();
audioInfo = new AlarmClockAudioInfo(rawName, RingTextUtil.showAudioTime(duration), uri);
}