android 调用系统铃声方法

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值