android多媒体音乐(MediaPlayer)播放器制作代码

发布时间 - 2026-01-10 23:17:01    点击率:

本文实例为大家分享了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多媒体音乐播放器  # android音乐播放器  # android  # MediaPlayer  # Android实现使用流媒体播放远程mp3文件的方法  # Android实现多媒体之播放音乐  # Android多媒体之VideoView视频播放器  # Android多媒体教程之播放视频的四种方法  # Android 多媒体播放API简单实例  # Android开发之MediaPlayer多媒体(音频  # 视频)播放工具类  # Android开发之多媒体文件获取工具类实例【音频  # 视频  # 图片等】  # Android开发实现的IntentUtil跳转多功能工具类【包含视频、音频、图片、摄像头等操作功能  # Android开发之媒体播放工具类完整示例  # 进度条  # 内存卡  # 自己的  # 放在  # 播放器  # 要知道  # 写了  # 几种  # 可以实现  # 拖动  # 大家分享  # 具体内容  # 值为  # 大家多多  # 机中  # 全局变量  # http  # playThree 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  JavaScript如何实现路由_前端路由原理是什么  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  如何在Tomcat中配置并部署网站项目?  如何快速辨别茅台真假?关键步骤解析  详解MySQL数据库的安装与密码配置  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  Laravel如何使用withoutEvents方法临时禁用模型事件  详解jQuery停止动画——stop()方法的使用  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  JavaScript数据类型有哪些_如何准确判断一个变量的类型  Laravel如何实现API资源集合?(Resource Collection教程)  Laravel怎么实现模型属性的自动加密  iOS正则表达式验证手机号、邮箱、身份证号等  如何用PHP快速搭建CMS系统?  个人网站制作流程图片大全,个人网站如何注销?  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置  php 三元运算符实例详细介绍  如何快速使用云服务器搭建个人网站?  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  php485函数参数是什么意思_php485各参数详细说明【介绍】  微信小程序制作网站有哪些,微信小程序需要做网站吗?  浅述节点的创建及常见功能的实现  如何在万网自助建站中设置域名及备案?  高防服务器:AI智能防御DDoS攻击与数据安全保障  js代码实现下拉菜单【推荐】  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  Laravel如何使用.env文件管理环境变量?(最佳实践)  如何在服务器上配置二级域名建站?  Python函数文档自动校验_规范解析【教程】  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  如何在万网主机上快速搭建网站?  如何在橙子建站上传落地页?操作指南详解  googleplay官方入口在哪里_Google Play官方商店快速入口指南  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  网页设计与网站制作内容,怎样注册网站?  html5的keygen标签为什么废弃_替代方案说明【解答】  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  Laravel如何实现多对多模型关联?(Eloquent教程)  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  公司门户网站制作流程,华为官网怎么做?  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  如何用免费手机建站系统零基础打造专业网站?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  javascript中对象的定义、使用以及对象和原型链操作小结