android多媒体音乐(MediaPlayer)播放器制作代码
本文实例为大家分享了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; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
Android ApplicationInfo 应用程序信息的详解
这篇文章主要介绍了Android ApplicationInfo 应用程序信息的详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下2017-10-10Android 5.1 WebView内存泄漏问题及快速解决方法
下面小编就为大家带来一篇Android 5.1 WebView内存泄漏问题及快速解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-05-05Flutter 弹性布局基石flex算法flexible示例详解
这篇文章主要为大家介绍了Flutter 弹性布局基石flex算法flexible示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-12-12android-获取网络时间、获取特定时区时间、时间同步的方法
本篇文章主要介绍了android-获取网络时间、获取特定时区时间、时间同步,小编觉得不错,现在就分享给大家,有兴趣的可以了解一下。2016-12-12Android使用GPS获取用户地理位置并监听位置变化的方法
这篇文章主要介绍了Android使用GPS获取用户地理位置并监听位置变化的方法,实例分析了Android编程中GPS定位的实现与使用技巧,需要的朋友可以参考下2015-12-12
最新评论