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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章