启动AlertDialog是执行播放音乐的操作,关闭时停止音乐的播放,
用MeidaPlayer类来实现音乐播放,例如播放
MediaPlayer mp = new MediaPlayer();   
mp.setDataSource(String URL/FILE_PATH);   
mp.prepare();   
mp.start(); // 开始播放在关闭AlertDialog时执行停止操作
mp.stop(); // 停止

解决方案 »

  1.   

    下边是我的代码,没有听到声音,不知道是哪里的问题MediaPlayer mMediaPlayer = new MediaPlayer(); 
    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();
      

  2.   

    在audio_meta表里有is alarm字段用来标识这个music是否为闹钟铃声。你直接查询这个表,播放这个音频文件应该就ok了。
      

  3.   

    通过Uri mediaUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
    获取的Uri是Settings.System.DEFAULT_ALARM_ALERT_URI,这个是settings的uri不是真实的播放音频的uri,还需要转换一下。
      

  4.   


    String authority = uri.getAuthority();            if (Settings.AUTHORITY.equals(authority)) {
                    if (followSettingsUri) {
                        Uri actualUri = RingtoneManager.getActualDefaultRingtoneUri(context,
                                RingtoneManager.getDefaultType(uri));
                        }
                } 
      

  5.   

    我刚做完这个项目,这个是在提示页面处理铃声播放的,关闭时要判断一下...               try {
    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();