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相关推荐

  1. android音乐播放器案例,Android MediaPlayer实现音乐播放器实例代码

    Android MediaPlayer实现音乐播放器 1.布局文件 android:layout_width="fill_parent" android:layout_height ...

  2. android音乐播放器实现,Android实现简单音乐播放器(MediaPlayer)

    Android实现简单音乐播放器(MediaPlayer),供大家参考,具体内容如下 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 实现一个 ...

  3. android studio在raw文件夹下使用MediaPlayer播放Mp3音乐

    android studio在raw文件夹下使用MediaPlayer播放Mp3音乐 1.在res文件夹下创建raw文件夹 2.在新建好文件夹之后,将MP3文件拖入进刚刚创建好的raw文件夹内 3.使 ...

  4. Android MediaPlayer 音乐播放器扫描 本地音乐、上一曲、下一曲切歌、播放本地音乐

    Android MediaPlayer 本地音乐播放器 运行截图 项目请在真机(自己的手机)上测试运行,因为我不喜欢用虚拟机. 为了不浪费您的时间,先看一下运行的效果图, 一进去先进行音乐扫描,然后列 ...

  5. <android>音乐频谱显示效果 音乐播放动画 自定义view Visualizer 对接MediaPlayer 声音频率 动画效果

    最近写了一个音乐频谱显示效果的自定义view,通过Visualizer 函数对接了MediaPlayer的声源byte数据的回调,全部封装到了view的里面,外部只需要设置一个MediaPlayer即 ...

  6. Android桌面小部件AppWidget:音乐播放器桌面控制部件Widget(3)

     Android桌面小部件AppWidget:音乐播放器桌面控制部件Widget(3) Android桌面小部件AppWidget比较常用的场景就是音乐播放器,音乐播放器虽然通常在后台播放,但需要 ...

  7. android后台自播放音乐,Android实现后台播放音乐(Service方式)

    Android实现后台播放音乐(Service方式) 实现: 在res文件夹下添加raw文件夹,添加mp3/4格式的音乐文件 注意命名规则只能是a-z,0-9,和下划线_ 不能大写字母和- Andro ...

  8. android学习笔记---43_音乐播放器,音频采集,音乐播放,使用SoundPool播放音效

    43_音乐播放器 ------------------------------------------ 1.注意在string.xml中不可以使用java的关键字,因为用关键字的话,会和java内部冲 ...

  9. Android音乐浮窗播放器

    这是来到公司的第一个小项目.做一个音乐播放器,内容如下 Float Music(浮窗音乐播放器) 考点: 服务, 音乐播放, 浮窗界面, 列表界面, 自定义view, 手势操作 功能描述: 1.音乐列 ...

最新文章

  1. css一个很好用的hover显示
  2. HashMap 在并发下可能出现的问题分析!
  3. LeetCode Paint House II
  4. 不会连PPPoE协议都不会配吧?
  5. 2021蛋白组学研究常用数据库汇总整理
  6. k8s设置pod privileged权限(特权):securityContext.privileged=true
  7. css截断长文本显示
  8. Linux 下安装配置C/C++开发环境 Code::Blocks
  9. Tensorflow1.x 和 2.x如何读取ckpt中保存了那些参数
  10. Sencha Touch2中数据的获取
  11. smarty中js的调用方法
  12. 深度卷积神经网络_深度卷积神经网络中的降采样
  13. wangEditor3菜单修改之如何添加分割线
  14. ※归并排序(merge sort)
  15. linux内核剪裁 4412,itop4412开发板-Linux内核的编译
  16. byte用json存 c++_玩转golang——JSON高性能自动字段名
  17. 文后参考文献著录规则 自动生成器 HTML
  18. 部门换届推文文字_宿委会换届表彰大会!!!
  19. 龙ol服务器维护补偿boss,《龙OL》12月17日更新公告
  20. 英特尔i5 1240H

热门文章

  1. AI人工智能分析-人脸识别和分析(人脸检测跟踪、获取特征长度、提取用于人脸特征、比较相似度)
  2. 微信小程序开发页面总结-文档(ing)
  3. 监控易火星版纳管IPv6:IP地址管理V2.0的进化之路
  4. 0-9数字CNN识别项目
  5. 对PTP 1588新的认识
  6. 抖音直播带货真的那么赚钱吗?如何快速引流爆单?
  7. 【备考二级java】
  8. stm32cubeide驱动LCD1602显示屏
  9. PHPnow搭建指南
  10. java获取微信accessToken