android mediaplayer播放sdcard音乐,Android 音乐播放MediaPlayer
Andorid多媒体播放中的音乐播放一般是使用MediaPlayer实现的,他对音频文件提供了非常全面的方法。
梳理一下MediaPlayer工作流程,创建出一个Media对象之后用setDataSource()来设置音频文件的路径,再调用Prepare()方法使它进入到工作状态,接下来调用start()即可.
demo如下:
1:在清淡文件中添加sd卡权限
2:布局文件
就写三个按钮,开始播放,暂停播放和重新播放即可
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
android:id="@+id/play"
android:text="play"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
android:id="@+id/pause"
android:text="pause"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
android:id="@+id/replay"
android:text="replay"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
3:Activity
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import android.Manifest;
import android.content.pm.PackageManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import java.io.File;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
private Button play;
private Button pause;
private Button replay;
private MediaPlayer mediaPlayer = new MediaPlayer();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
play = findViewById(R.id.play);
pause = findViewById(R.id.pause);
replay = findViewById(R.id.replay);
if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
}else {
try { //权限申请
initMediaPlayer();
} catch (IOException e) {
e.printStackTrace();
}
}
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!mediaPlayer.isPlaying()){
mediaPlayer.start();
}
}
});
pause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mediaPlayer.isPlaying()){
mediaPlayer.pause();
}
}
});
replay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mediaPlayer.isPlaying()){
mediaPlayer.reset();
try {
initMediaPlayer();
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode){
case 1:
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
try {
initMediaPlayer();
} catch (IOException e) {
e.printStackTrace();
}
}else {
Toast.makeText(MainActivity.this,"权限被拒绝",Toast.LENGTH_LONG).show();
}
break;
default:
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mediaPlayer != null){
mediaPlayer.stop();
mediaPlayer.release();
}
}
private void initMediaPlayer() throws IOException {
File file = new File(Environment.getExternalStorageDirectory(),"成磊 - 你不知道的事.mp3"); //这个文件要放在sd卡的根目录下
mediaPlayer.setDataSource(file.getPath());
mediaPlayer.prepare();
}
}
音频文件要放在sd卡的根目录下或自定义文件路径
android mediaplayer播放sdcard音乐,Android 音乐播放MediaPlayer相关推荐
- android音乐播放器案例,Android MediaPlayer实现音乐播放器实例代码
Android MediaPlayer实现音乐播放器 1.布局文件 android:layout_width="fill_parent" android:layout_height ...
- android音乐播放器实现,Android实现简单音乐播放器(MediaPlayer)
Android实现简单音乐播放器(MediaPlayer),供大家参考,具体内容如下 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 实现一个 ...
- android studio在raw文件夹下使用MediaPlayer播放Mp3音乐
android studio在raw文件夹下使用MediaPlayer播放Mp3音乐 1.在res文件夹下创建raw文件夹 2.在新建好文件夹之后,将MP3文件拖入进刚刚创建好的raw文件夹内 3.使 ...
- Android MediaPlayer 音乐播放器扫描 本地音乐、上一曲、下一曲切歌、播放本地音乐
Android MediaPlayer 本地音乐播放器 运行截图 项目请在真机(自己的手机)上测试运行,因为我不喜欢用虚拟机. 为了不浪费您的时间,先看一下运行的效果图, 一进去先进行音乐扫描,然后列 ...
- <android>音乐频谱显示效果 音乐播放动画 自定义view Visualizer 对接MediaPlayer 声音频率 动画效果
最近写了一个音乐频谱显示效果的自定义view,通过Visualizer 函数对接了MediaPlayer的声源byte数据的回调,全部封装到了view的里面,外部只需要设置一个MediaPlayer即 ...
- Android桌面小部件AppWidget:音乐播放器桌面控制部件Widget(3)
Android桌面小部件AppWidget:音乐播放器桌面控制部件Widget(3) Android桌面小部件AppWidget比较常用的场景就是音乐播放器,音乐播放器虽然通常在后台播放,但需要 ...
- android后台自播放音乐,Android实现后台播放音乐(Service方式)
Android实现后台播放音乐(Service方式) 实现: 在res文件夹下添加raw文件夹,添加mp3/4格式的音乐文件 注意命名规则只能是a-z,0-9,和下划线_ 不能大写字母和- Andro ...
- android学习笔记---43_音乐播放器,音频采集,音乐播放,使用SoundPool播放音效
43_音乐播放器 ------------------------------------------ 1.注意在string.xml中不可以使用java的关键字,因为用关键字的话,会和java内部冲 ...
- Android音乐浮窗播放器
这是来到公司的第一个小项目.做一个音乐播放器,内容如下 Float Music(浮窗音乐播放器) 考点: 服务, 音乐播放, 浮窗界面, 列表界面, 自定义view, 手势操作 功能描述: 1.音乐列 ...
最新文章
- css一个很好用的hover显示
- HashMap 在并发下可能出现的问题分析!
- LeetCode Paint House II
- 不会连PPPoE协议都不会配吧?
- 2021蛋白组学研究常用数据库汇总整理
- k8s设置pod privileged权限(特权):securityContext.privileged=true
- css截断长文本显示
- Linux 下安装配置C/C++开发环境 Code::Blocks
- Tensorflow1.x 和 2.x如何读取ckpt中保存了那些参数
- Sencha Touch2中数据的获取
- smarty中js的调用方法
- 深度卷积神经网络_深度卷积神经网络中的降采样
- wangEditor3菜单修改之如何添加分割线
- ※归并排序(merge sort)
- linux内核剪裁 4412,itop4412开发板-Linux内核的编译
- byte用json存 c++_玩转golang——JSON高性能自动字段名
- 文后参考文献著录规则 自动生成器 HTML
- 部门换届推文文字_宿委会换届表彰大会!!!
- 龙ol服务器维护补偿boss,《龙OL》12月17日更新公告
- 英特尔i5 1240H