启动AlertDialog是执行播放音乐的操作,关闭时停止音乐的播放,
用MeidaPlayer类来实现音乐播放,例如播放
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(String URL/FILE_PATH);
mp.prepare();
mp.start(); // 开始播放在关闭AlertDialog时执行停止操作
mp.stop(); // 停止
用MeidaPlayer类来实现音乐播放,例如播放
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(String URL/FILE_PATH);
mp.prepare();
mp.start(); // 开始播放在关闭AlertDialog时执行停止操作
mp.stop(); // 停止
mMediaPlayer.setLooping(true);
Uri mediaUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
try{
Log.i("Timedown", mediaUri.toString());
mMediaPlayer.setDataSource(this, mediaUri);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_NOTIFICATION);
mMediaPlayer.prepare();
mMediaPlayer.start();
}
catch(Exception e)
{
Log.e("Timedown", e.toString());
}
new AlertDialog.Builder(this)
.setTitle("闹钟")
.setMessage("时间到了!")
.setNeutralButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
mMediaPlayer.stop();
}
})
.show();
获取的Uri是Settings.System.DEFAULT_ALARM_ALERT_URI,这个是settings的uri不是真实的播放音频的uri,还需要转换一下。
String authority = uri.getAuthority(); if (Settings.AUTHORITY.equals(authority)) {
if (followSettingsUri) {
Uri actualUri = RingtoneManager.getActualDefaultRingtoneUri(context,
RingtoneManager.getDefaultType(uri));
}
}
mp= new MediaPlayer();
mp.reset();
mp.setDataSource(bellPath);
mp.prepare();
mp.start();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
new AlertDialog.Builder(AlarmAlert.this)
.setIcon(R.drawable.alarmclock)
.setTitle("提醒:" + "\n" + title)
.setMessage("现在" + hour + ":" + minute + "了,赶快行动吧!")
.setPositiveButton("确定", new DialogInterface.OnClickListener(){
@Override //点击确定时关闭音乐
public void onClick(DialogInterface dialog, int which) {
if(mp.isPlaying() == true){
mp.release();
}
AlarmAlert.this.finish();
}
})
.show();