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多媒体音乐(MediaPlayer)播放器制作代码 的全部内容, 来源链接: utcz.com/z/319921.html

回到顶部