android 打开音频文件,Android-播放应用内音频文件and播放内存卡及网络音频

812c767c3e22b2611f94cd84b90ebed4.png

效果如下:

播放应用内音频文件

1,MainActivity

import android.media.MediaPlayer;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.ImageButton;

import android.widget.ImageView;

import android.widget.SeekBar;

public class MainActivity extends AppCompatActivity {

private MediaPlayer mediaPlayer;

private SeekBar seekBar;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

seekBar = (SeekBar) findViewById(R.id.main_seekbar);

//设置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){

ImageButton imageButton= (ImageButton) view;

if (mediaPlayer==null){

//实例化MediaPlayer

mediaPlayer = MediaPlayer.create(this, R.raw.music);

mediaPlayer.start();

imageButton.setImageResource(android.R.drawable.ic_media_pause);

//获取音乐的总时长

int duration=mediaPlayer.getDuration();

seekBar.setMax(duration);

new MyThread().start();

} 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);

}

}

class MyThread extends Thread{

@Override

public void run() {

super.run();

while (seekBar.getProgress()<=seekBar.getMax()){

//获取当前音乐的位置

int currentPosition=mediaPlayer.getCurrentPosition();

//让进度条动起来

seekBar.setProgress(currentPosition);

}

}

}

}

2.activity_main.xml

播放内存卡音频(根据上述代码修改)

将mediaPlayer==null中的内容

改为

//播放内存中的音频文件

MediaPlayer mediaPlayer=new MediaPlayer();

//设置类型

mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

//准备

mediaPlayer.start();

//设置音源

try {

mediaPlayer.setDataSource(this, Uri.parse("file://Music/mylove.mp3(内存地址)"));

mediaPlayer.prepare();

} catch (IOException e) {

e.printStackTrace();

}

加一个权限

播放网络音频(根据上述代码修改)

mediaPlayer.setDataSource(this, Uri.parse("网络路径"));

//异步准备

mediaPlayer.prepareAsync();

加一个准备完的监听

加一个联网权限

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值