本帖最后由 riyuexingchen1204 于 2011-02-10 10:33:29 编辑

解决方案 »

  1.   

    package demo.media;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.Button;
    import android.widget.Toast;
    import android.view.ViewGroup.LayoutParams;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.media.MediaPlayer;
    import android.media.MediaPlayer.OnCompletionListener;
     
    public class MediaTest01 extends Activity{
    protected MediaPlayer mediaPlayer;
    protected Button controlButton;
     
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            initializeMediaPlayer();
            initializeView();
        }
        //初始化声音
        private void initializeMediaPlayer(){
         mediaPlayer=MediaPlayer.create(this, R.raw.sound_test);
         mediaPlayer.setOnCompletionListener(new OnCompletionListener(){
    public void onCompletion(MediaPlayer player) {
    controlButton.setText("Play");
                                    releaseMediaPlayer();
    }
    });
        }
        //初始化视图界面
        private void initializeView(){
         controlButton=new Button(this);
         LayoutParams params=new LayoutParams(LayoutParams.WRAP_CONTENT,
                              LayoutParams.WRAP_CONTENT);
         setContentView(R.layout.main);
         addContentView(controlButton, params);
         controlButton.setOnClickListener(new OnClickListener(){
         public void onClick(View v){
         MediaTest01.this.handleControlButtonClick();
         }
         });
         if(mediaPlayer.isPlaying()){
         controlButton.setText("Stop");
         }else{
         controlButton.setText("Play");
         }
        }
        //处理按钮动作
        public void handleControlButtonClick(){
         if(!mediaPlayer.isPlaying()){
    this.playSound();
    }else{
    this.stopSound();
    }
    }
        }
        //播放声音
        private void playSound(){
         Toast.makeText(this,"Play",Toast.LENGTH_SHORT).show();
         releaseMediaPlayer();
         initializeMediaPlayer();
    mediaPlayer.start();
    controlButton.setText("Stop");
        }
        //停止声音
        private void stopSound(){
            Toast.makeText(this,"Stop",Toast.LENGTH_SHORT).show();
         mediaPlayer.stop();
         controlButton.setText("Play");
        }
        //释放播放器资源
        private void releaseMediaPlayer(){
         if(mediaPlayer!=null){
         mediaPlayer.release();
         mediaPlayer=null;
         }
        }
        @Override
        protected void onDestroy(){
         super.onDestroy();
         releaseMediaPlayer();
        }  
    }
      

  2.   

    mp.setDataSource(context,RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
    这样写就是播放默认的铃音了改成这样就好了
    mp.setDataSource(String path);path是指你要播放的铃音的路径:比如(/sdcard/music/a.mp3)
      

  3.   

    http://aina-hk55hk.javaeye.com/blog/709091
    这里面有写,自己看看
      

  4.   

    我获取不到短信铃声的地址啊,要是知道就行了。你知道如何获取短信铃声的uri或者filepath吗?谢谢。