国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

android多媒體音樂(MediaPlayer)播放器制作代碼

2019-10-23 19:44:58
字體:
來源:轉載
供稿:網友

本文實例為大家分享了android多媒體音樂播放器的具體實現代碼,供大家參考,具體內容如下

首先,在AndroidManifest.xml中配置權限 

<!-- 讀取手機中的音樂 -->  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

注釋:Android多媒體音樂的幾種來源

1.在andriod的應用中

MediaPlayer.create(this, R.raw.roar);//mnt/sdcard/手機內存卡

2.放在自己的sd卡中(內存卡)

mediaPlayer.setDataSource(this, Uri.parse("file://mnt/sdcard/1/123.mp3"));

3.在網絡上(要知道哪個路徑)

 mediaPlayer.setDataSource(this, Uri.parse("http://192.168.43.202:8080/sister.mp3"));

接下來,在Java代碼中寫

在onCreate方法中寫全局變量:

 private MediaPlayer mediaPlayer;  private SeekBar seekBar;private SurfaceView sv_main_suffce; public void onplay(View view) throws IOException {    imageButton = (ImageButton) view;    if (mediaPlayer==null){      //播放應用的音頻文件//      mediaPlayer = MediaPlayer.create(this, R.raw.roar);      //播放內存卡中的音頻文件      mediaPlayer=new MediaPlayer();      //音頻流的類型      mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);      //設置音頻的來源//      mediaPlayer.setDataSource(this, Uri.parse("file://mnt/sdcard/1/roar.mp3"));//      mediaPlayer.prepare();//準備一下      //播放網絡音樂      mediaPlayer.setDataSource(this, Uri.parse("http://192.168.43.202:8080/crickets.mp3"));      //一步準備      mediaPlayer.prepareAsync();      //設置準備完的監聽      mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {        @Override        public void onPrepared(MediaPlayer mediaPlayer) {          //開始播放          mediaPlayer.start();          //點擊播放改變圖標          imageButton.setImageResource(android.R.drawable.ic_media_pause);          //獲取音樂的播放最大時間          int durtion=mediaPlayer.getDuration();          //設置進度條的最大值為音樂的播放最大時間          seekBar.setMax(durtion);          new Mythred().start();        }      });       //給進度條設置一個事件      seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {        @Override        public void onProgressChanged(SeekBar seekBar, int i, boolean b) {        }        @Override        public void onStartTrackingTouch(SeekBar seekBar) {        }        @Override        public void onStopTrackingTouch(SeekBar seekBar) {          //獲取拖動的進度          int progress=seekBar.getProgress();          //到那個位置播放          mediaPlayer.seekTo(progress);        }      });    }    else if (mediaPlayer.isPlaying()){      mediaPlayer.pause();      imageButton.setImageResource(android.R.drawable.ic_media_play);    }    else {      mediaPlayer.start();      imageButton.setImageResource(android.R.drawable.ic_media_pause);    }  }

寫了一個子線程 extends Thread(seekbar進度條):

class Mythrod extends Thread{    @Override    public void run() {      super.run();      while (seekBar.getProgress()<=seekBar.getMax()){       //獲取音樂的當前播放位置        int currentPosition=mediaPlayer.getCurrentPosition();        seekBar.setProgress(currentPosition);      }    }  }

另建一個類SoundActivity,通過soundPool例化音頻池可以實現多種聲音一起播放

//實例化音頻池    soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC,0);  soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {    @Override    public void onLoadComplete(SoundPool soundPool, int i, int status) {     //播放      soundPool.play(i,1,1,1,-1,1);    }  });//寫聲音按鈕的方法 public void playKFC(View view){ //音頻池的路徑    soundPool.load(this,R.raw.rooster,1);  }  public void playTwo(View view){    soundPool.load(this,R.raw.chimp,1);  }  public void playThree(View view){    soundPool.load(this,R.raw.crickets,1);  }  public void playFour(View view){    soundPool.load(this,R.raw.roar,1);  }  public void playDog(View view){    soundPool.load(this,R.raw.dogbark,1);  }//銷毀音頻池soundPool  @Override  protected void onDestroy() {    super.onDestroy();    if(soundPool!=null){     //釋放內存      soundPool.release();      soundPool=null;    }  }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁城县| 志丹县| 嫩江县| 芮城县| 偃师市| 通辽市| 钦州市| 桃园市| 花莲市| 万山特区| 高雄市| 永平县| 汝南县| 内黄县| 奉新县| 任丘市| 瑞丽市| 方城县| 平泉县| 兰西县| 宁阳县| 普安县| 中牟县| 大厂| 绥江县| 通渭县| 二手房| 博白县| 大关县| 巩义市| 防城港市| 龙陵县| 商丘市| 通辽市| 高安市| 化隆| 读书| 清原| 壤塘县| 衡东县| 托克托县|