一:android MediaPlayer 简易播放器的实现
(一)MediaPlayer实现前提1.音频来源途径(应用内,内存卡中的音频,网络上)
(二)代码块实现
public class MediaplayerActivity extends AppCompatActivity {    private MediaPlayer mediaPlayer;    private SeekBar seekBar;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_mediaplayer);        seekBar = (SeekBar) findViewById(R.id.seekbar);        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {            @Override            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {            }            @Override            public void onStartTrackingTouch(SeekBar seekBar) {            }            @Override            public void onStopTrackingTouch(SeekBar seekBar) {                //获取拖动结束之后的位置                int progress = seekBar.getProgress();                //跳转到某个位置播放                mediaPlayer.seekTo(progress);            }        });    }    public void isPlayOrPause(View view) {        final ImageButton imageButton = (ImageButton) view;        if (mediaPlayer == null) {            //实例化MediaPlayer            //1.播放应用内//        mediaPlayer = MediaPlayer.create(this, R.raw.love);            //2.播放内存卡中音频文件            mediaPlayer = new MediaPlayer();            //设置类型            mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);            //设置音源            try {//                mediaPlayer.setDataSource(this, Uri.parse("file://netease/cloudmusic/Music/mylove.mp3"));                //3.播放网络音乐                mediaPlayer.setDataSource(this, Uri.parse("http://192.168.43.244:8080/dbqq.mp3"));                //准备一下(内存卡)//                mediaPlayer.prepare();                //准备(网络)                mediaPlayer.prepareAsync();            } catch (IOException e) {                e.printStackTrace();            }        } 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);        }        //监听:准备完成的监听        mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {            @Override            public void onPrepared(MediaPlayer mp) {                mediaPlayer.start();                //把图标修改为暂停的图标                imageButton.setImageResource(android.R.drawable.ic_media_pause);                //获取音乐的总时长                int duration = mediaPlayer.getDuration();                //设置进度条的最大值为音乐的总时长                seekBar.setMax(duration);                new MyThread().start();            }        });    }    //开启线程    class MyThread extends Thread {        @Override        public void run() {            super.run();            while (seekBar.getProgress() <= seekBar.getMax()) {                //获取当前音乐播放的位置                int currentPosition = mediaPlayer.getCurrentPosition();                //让进度条动起来                seekBar.setProgress(currentPosition);            }        }    }}
   
(三)注意点
   
<uses-permission android:name="android.permission.INTERNET" />

二:android 类似斗地主音频池实现
public class PlayAnimalActivity extends AppCompatActivity {    private SoundPool soundPool;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_play_animal);        //实例化音频池        soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC,0);        //给音频池设置加载完成的监听        soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {            @Override            public void onLoadComplete(SoundPool soundPool, int i, int i1) {                soundPool.play(i,1,1,1,100,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);    }    @Override    protected void onDestroy() {        super.onDestroy();        if(soundPool!=null){            soundPool.release();            soundPool=null;        }    }}


更多相关文章

  1. linux下如何为刚安装好的Eclipse在桌面建一个启动图标???(QtCreator
  2. Android(安卓)多点触摸
  3. android 记录和恢复ListView滚动的位置 四种方法
  4. Android界面的架构图
  5. android之数组排序
  6. Android(安卓)MediaPlayer类
  7. android 广告栏 viewpager
  8. Android(安卓)8.0 Volte开关流程 HD图标显示
  9. Android(OPhone) 学习笔记 - OPhone 开发环境

随机推荐

  1. Android基于位置的服务LBS
  2. android 对话提示框大全
  3. 改变button按钮的形状
  4. 一个网友写的android开发随笔,不错,可以参
  5. 阻止一进入页面就弹输入法对话框的方法
  6. Android中通过Intent 调用图片、视频、音
  7. Android摄像头--通过Intent启动
  8. android GridView选择照片的完整实现
  9. android 获取连接WiFi的名称SSID
  10. Android(安卓)Jetpack ViewModel管理数据