您的位置:首页 > 理论基础 > 计算机网络

Android-MedioPlay播放应用内,内存卡,网络的音频实例

2017-02-22 11:26 225 查看
效果图:



package com.example.android26_medioplay;

import android.media.AudioManager;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Environment;
import android.os.SystemClock;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageButton;
import android.widget.SeekBar;

import java.io.IOException;

/**
* 媒体播放器
*  MediaPlayer是一个封装的很好的音频、视频流媒体操作类
* 加载sd和网络需在清单文件加权限
*/
public class MainActivity extends AppCompatActivity {

private ImageButton ib_main;
private MediaPlayer mediaPlayer;
private SeekBar sb_mian;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ib_main = (ImageButton) findViewById(R.id.ib_main);
sb_mian = (SeekBar) findViewById(R.id.sb_mian);
//设置进度条拖动的监听
sb_mian.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=sb_mian.getProgress();
//跳转到拖动位置播放
mediaPlayer.seekTo(progress);

}
});
}
public void playmusic(View view){
if(mediaPlayer==null){

//播放内存卡sd的音乐
mediaPlayer = new MediaPlayer();
try {
//设置音频
mediaPlayer.setDataSource(this, Uri.parse("file//内部存储/musics/b.mp3"));
//拿网络音乐
// mediaPlayer.setDataSource(this, Uri.parse("http://193.168.1.70/Internet.mp3"));
//准备
mediaPlayer.prepare();
//异步准备
//  mediaPlayer.prepareAsync();
} catch (IOException e) {
e.printStackTrace();
}
//播放内存raw的音乐
//mediaPlayer = MediaPlayer.create(this, R.raw.a);

//设置音乐完成的监听
//            mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
//                @Override
//                public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.start();
ib_main.setImageResource(android.R.drawable.ic_media_pause);
//获取音乐播放的总时长
int alltime=mediaPlayer.getDuration();
//给seekbar设置最大值
sb_mian.setMax(alltime);
new Mythread().start();
//                }
//            });
}else if(mediaPlayer.isPlaying()){
mediaPlayer.pause();
ib_main.setImageResource(android.R.drawable.ic_media_play);
}else{
ib_main.setImageResource(android.R.drawable.ic_media_pause);
mediaPlayer.start();
}
}
class Mythread extends Thread{
@Override
public void run() {
//当进度条小于等于进度条最大的时候做操作
while(sb_mian.getProgress()<=sb_mian.getMax()){
//获取当前进度条
int currentposition=mediaPlayer.getCurrentPosition();
//设置进度条为当前播放的位置
sb_mian.setProgress(currentposition);

}
super.run();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  实例