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

首頁(yè) > 系統(tǒng) > Android > 正文

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

2019-12-12 03:35:48
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例為大家分享了android多媒體音樂(lè)播放器的具體實(shí)現(xiàn)代碼,供大家參考,具體內(nèi)容如下

首先,在AndroidManifest.xml中配置權(quán)限 

<!-- 讀取手機(jī)中的音樂(lè) -->  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

注釋:Android多媒體音樂(lè)的幾種來(lái)源

1.在andriod的應(yīng)用中

MediaPlayer.create(this, R.raw.roar);//mnt/sdcard/手機(jī)內(nèi)存卡

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

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

3.在網(wǎng)絡(luò)上(要知道哪個(gè)路徑)

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

接下來(lái),在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){      //播放應(yīng)用的音頻文件//      mediaPlayer = MediaPlayer.create(this, R.raw.roar);      //播放內(nèi)存卡中的音頻文件      mediaPlayer=new MediaPlayer();      //音頻流的類型      mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);      //設(shè)置音頻的來(lái)源//      mediaPlayer.setDataSource(this, Uri.parse("file://mnt/sdcard/1/roar.mp3"));//      mediaPlayer.prepare();//準(zhǔn)備一下      //播放網(wǎng)絡(luò)音樂(lè)      mediaPlayer.setDataSource(this, Uri.parse("http://192.168.43.202:8080/crickets.mp3"));      //一步準(zhǔn)備      mediaPlayer.prepareAsync();      //設(shè)置準(zhǔn)備完的監(jiān)聽(tīng)      mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {        @Override        public void onPrepared(MediaPlayer mediaPlayer) {          //開(kāi)始播放          mediaPlayer.start();          //點(diǎn)擊播放改變圖標(biāo)          imageButton.setImageResource(android.R.drawable.ic_media_pause);          //獲取音樂(lè)的播放最大時(shí)間          int durtion=mediaPlayer.getDuration();          //設(shè)置進(jìn)度條的最大值為音樂(lè)的播放最大時(shí)間          seekBar.setMax(durtion);          new Mythred().start();        }      });       //給進(jìn)度條設(shè)置一個(gè)事件      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) {          //獲取拖動(dòng)的進(jìn)度          int progress=seekBar.getProgress();          //到那個(gè)位置播放          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);    }  }

寫了一個(gè)子線程 extends Thread(seekbar進(jìn)度條):

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

另建一個(gè)類SoundActivity,通過(guò)soundPool例化音頻池可以實(shí)現(xiàn)多種聲音一起播放

//實(shí)例化音頻池    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){     //釋放內(nèi)存      soundPool.release();      soundPool=null;    }  }

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 大安市| 清苑县| 丰宁| 阿尔山市| 肇东市| 哈密市| 沂源县| 岱山县| 鲜城| 神农架林区| 渑池县| 大化| 松阳县| 大冶市| 常宁市| 长宁县| 防城港市| 宜阳县| 新野县| 封开县| 镇原县| 临邑县| 沂水县| 嘉兴市| 大石桥市| 宣城市| 鸡西市| 钟祥市| 陇川县| 乌鲁木齐县| 攀枝花市| 鄂托克旗| 玛沁县| 京山县| 明水县| 盈江县| 漯河市| 台北县| 和顺县| 驻马店市| 八宿县|