本文实例为大家分享了android多媒体音乐播放器的具体实现代码,供大家参考。
本文实例为我们共享了android多媒体音乐播映器的详细完成代码,供我们参阅,详细内容如下。
首要,在AndroidManifest.xml中装备权限
- <!--读取手机中的音乐-->
- <uses-permissionandroid:name="android.permission.READ_EXTERNAL_STORAGE"/>
注释:Android多媒体音乐的几种来历
1. 在andriod的使用中
- 2
- 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办法中写全局变量:
- privateMediaPlayermediaPlayer;
- privateSeekBarseekBar;
- privateSurfaceViewsv_main_suffce;
- publicvoidonplay(Viewview)throwsIOException{
- imageButton=(ImageButton)view;
- if(mediaPlayer==null){
- //播映使用的音频文件
- //mediaPlayer=MediaPlayer.create(this,R.raw.roar);
- //播映内存卡中的音频文件
- mediaPlayer=newMediaPlayer();
- //音频流的类型
- 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(newMediaPlayer.OnPreparedListener(){
- @Override
- publicvoidonPrepared(MediaPlayermediaPlayer){
- //开端播映
- mediaPlayer.start();
- //点击播映改动图标
- imageButton.setImageResource(android.R.drawable.ic_media_pause);
- //获取音乐的播映***时刻
- intdurtion=mediaPlayer.getDuration();
- //设置进展条的***值为音乐的播映***时刻
- seekBar.setMax(durtion);
- newMythred().start();
- }
- });
- //给进展条设置一个事情
- seekBar.setOnSeekBarChangeListener(newSeekBar.OnSeekBarChangeListener(){
- @Override
- publicvoidonProgressChanged(SeekBarseekBar,inti,booleanb){
- }
- @Override
- publicvoidonStartTrackingTouch(SeekBarseekBar){
- }
- @Override
- publicvoidonStopTrackingTouch(SeekBarseekBar){
- //获取拖动的进展
- intprogress=seekBar.getProgress();
- //到那个方位播映
- mediaPlayer.seekTo(progress);
- }
- });
- }
- elseif(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进展条):
- classMythrodextendsThread{
- @Override
- publicvoidrun(){
- super.run();
- while(seekBar.getProgress()<=seekBar.getMax()){
- //获取音乐的当时播映方位
- intcurrentPosition=mediaPlayer.getCurrentPosition();
- seekBar.setProgress(currentPosition);
- }
- }
- }
另建一个类SoundActivity,经过soundPool例化音频池能够完成多种声响一同播映
- //实例化音频池
- soundPool=newSoundPool(4,AudioManager.STREAM_MUSIC,0);
- soundPool.setOnLoadCompleteListener(newSoundPool.OnLoadCompleteListener(){
- @Override
- publicvoidonLoadComplete(SoundPoolsoundPool,inti,intstatus){
- //播映
- soundPool.play(i,1,1,1,-1,1);
- }
- });
- //写声响按钮的办法
- publicvoidplayKFC(Viewview){
- //音频池的途径
- soundPool.load(this,R.raw.rooster,1);
- }
- publicvoidplayTwo(Viewview){
- soundPool.load(this,R.raw.chimp,1);
- }
- publicvoidplayThree(Viewview){
- soundPool.load(this,R.raw.crickets,1);
- }
- publicvoidplayFour(Viewview){
- soundPool.load(this,R.raw.roar,1);
- }
- publicvoidplayDog(Viewview){
- soundPool.load(this,R.raw.dogbark,1);
- }
- //毁掉音频池soundPool
- @Override
- protectedvoidonDestroy(){
- super.onDestroy();
- if(soundPool!=null){
- //开释内存
- soundPool.release();
- soundPool=null;
- }
- }
以上便是本文的全部内容,期望对我们的学习有所协助。