1.直接调用铃声:
MediaPlayer mp = new MediaPlayer();
try {
mp.setDataSource(this, RingtoneManager
.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
mp.prepare();
mp.start();
} catch (Exception e) {
e.printStackTrace();
}
2.调用个人铃声方法:
AppConstant .java:
public interface AppConstant {
public static final int RINGTONE = 0; // 铃声
public static final int NOTIFICATION = 1; // 通知音
public static final int ALARM = 2; // 闹钟
public static final int ALL = 3; // 所有声音
}
mainActivity.java:
private void setVoice(String path2, int id) {
ContentValues cv = new ContentValues();
Uri newUri = null;
Uri uri = MediaStore.Audio.Media.getContentUriForPath(path2);
// 查询音乐文件在媒体库是否存在
Cursor cursor = this.getContentResolver().query(uri, null,
MediaStore.MediaColumns.DATA + "=?", new String[] { path2 },
null);
if (cursor.moveToFirst() && cursor.getCount() > 0) {
String _id = cursor.getString(0);
switch (id) {
case AppConstant.RINGTONE:
cv.put(MediaStore.Audio.Media.IS_RINGTONE, true);
cv.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
cv.put(MediaStore.Audio.Media.IS_ALARM, false);
cv.put(MediaStore.Audio.Media.IS_MUSIC, false);
break;
case AppConstant.NOTIFICATION:
cv.put(MediaStore.Audio.Media.IS_RINGTONE, false);
cv.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
cv.put(MediaStore.Audio.Media.IS_ALARM, false);
cv.put(MediaStore.Audio.Media.IS_MUSIC, false);
break;
case AppConstant.ALARM:
cv.put(MediaStore.Audio.Media.IS_RINGTONE, false);
cv.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
cv.put(MediaStore.Audio.Media.IS_ALARM, true);
cv.put(MediaStore.Audio.Media.IS_MUSIC, false);
break;
case AppConstant.ALL:
cv.put(MediaStore.Audio.Media.IS_RINGTONE, false);
cv.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
cv.put(MediaStore.Audio.Media.IS_ALARM, false);
cv.put(MediaStore.Audio.Media.IS_MUSIC, true);
break;
default:
break;
}
// 把需要设为铃声的歌曲更新铃声库
getContentResolver()
.update(uri, cv, MediaStore.MediaColumns.DATA + "=?",
new String[] { path2 });
newUri = ContentUris.withAppendedId(uri, Long.valueOf(_id));
// 以下为关键代码:
switch (id) {
case AppConstant.RINGTONE:
RingtoneManager.setActualDefaultRingtoneUri(this,
RingtoneManager.TYPE_RINGTONE, newUri);
break;
case AppConstant.NOTIFICATION:
RingtoneManager.setActualDefaultRingtoneUri(this,
RingtoneManager.TYPE_NOTIFICATION, newUri);
break;
case AppConstant.ALARM:
RingtoneManager.setActualDefaultRingtoneUri(this,
RingtoneManager.TYPE_ALARM, newUri);
break;
case AppConstant.ALL:
RingtoneManager.setActualDefaultRingtoneUri(this,
RingtoneManager.TYPE_ALL, newUri);
break;
default:
break;
}
// 播放铃声
Ringtone rt = RingtoneManager.getRingtone(this, newUri);
rt.play();
}
}
http://rd.189works.com/article-35223-1.html