Android简易音乐播放器实现代码

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

本文实例为大家分享了Android音乐播放器的具体代码,供大家参考,具体内容如下

1.播放项目内的音乐

package com.thm.g150820_android26_playmusic;
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.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.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){ 
//把View强转为ImageButton 
ImageButton imageButton = (ImageButton) view;

if(mediaPlayer==null) {
 //实例化MediaPlayer
 mediaPlayer = MediaPlayer.create(this, R.raw.yao);
 //开始播放
 mediaPlayer.start();
 //图标修改为暂停的图标
 imageButton.setImageResource(android.R.drawable.ic_media_pause);
 //获取音乐的总时长
 int duration = mediaPlayer.getDuration();
 //设置进度条的最大值为音乐的总时长
 seekBar.setMax(duration);

 new MyThre().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 MyThre extends Thread{ 
@Override 
public void run() { 
super.run(); 
while(seekBar.getProgress()<=seekBar.getMax()){

 //获取当前音乐播放的位置
 int currentPosition = mediaPlayer.getCurrentPosition();

 //让进度条动起来
 seekBar.setProgress(currentPosition);
 }
 }
}
}

2.播放内存卡中的音乐

package com.thm.g150820_android26_playmusic;

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

import java.io.IOException;

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.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){
 //把View强转为ImageButton
 ImageButton imageButton = (ImageButton) view;

 if(mediaPlayer==null) {
 //实例化MediaPlayer
 //播放应用内的音乐
 //mediaPlayer = MediaPlayer.create(this, R.raw.yao);

 //播放内存卡中的音乐
 mediaPlayer = new MediaPlayer();

 //设置类型
 mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
 //设置音乐路径
 try {
 mediaPlayer.setDataSource(this, Uri.parse("storage/sdcard0/Music/a.mp3"));
 //播放之前准备一下
 mediaPlayer.prepare();
 } catch (IOException e) {
 e.printStackTrace();
 }


 //开始播放
 mediaPlayer.start();
 //图标修改为暂停的图标
 imageButton.setImageResource(android.R.drawable.ic_media_pause);
 //获取音乐的总时长
 int duration = mediaPlayer.getDuration();
 //设置进度条的最大值为音乐的总时长
 seekBar.setMax(duration);

 new MyThre().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 MyThre extends Thread{
 @Override
 public void run() {
 super.run();
 while(seekBar.getProgress()<=seekBar.getMax()){

 //获取当前音乐播放的位置
 int currentPosition = mediaPlayer.getCurrentPosition();

 //让进度条动起来
 seekBar.setProgress(currentPosition);
 }
 }
 }
}

3.添加读取内存的权限

更多关于播放器的内容请点击《java播放器功能》进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Android  # 音乐播放器  # Android实现简单音乐播放器(MediaPlayer)  # 教你轻松制作Android音乐播放器  # android暂停或停止其他音乐播放器的播放实现代码  # Android编程开发音乐播放器实例  # Android音乐播放器制作 扫描本地音乐显示在手机(一)  # android实现音乐播放器进度条效果  # Android MediaPlayer实现音乐播放器实例代码  # 简单实现Android本地音乐播放器  # Android 音乐播放器的开发实例详解  # Android实现简单的音乐播放器  # 时长  # 播放器  # 进度条  # 拖动  # 值为  # 跳转到  # 音乐播放  # 结束之后  # 内存卡  # 请点击  # 大家分享  # 更多关于  # 具体内容  # 大家多多  # mediaPlayer  # private  # seekBar  # Override  # protected  # extends 


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


相关推荐: Laravel如何实现API资源集合?(Resource Collection教程)  Laravel如何配置任务调度?(Cron Job示例)  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  Laravel如何使用Eloquent进行子查询  Laravel API资源类怎么用_Laravel API Resource数据转换  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  php打包exe后无法访问网络共享_共享权限设置方法【教程】  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  js代码实现下拉菜单【推荐】  JavaScript如何实现倒计时_时间函数如何精确控制  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  如何快速完成中国万网建站详细流程?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  如何用JavaScript实现文本编辑器_光标和选区怎么处理  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  如何用花生壳三步快速搭建专属网站?  南京网站制作费用,南京远驱官方网站?  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  详解jQuery中的事件  大同网页,大同瑞慈医院官网?  Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  Python并发异常传播_错误处理解析【教程】  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  如何在建站主机中优化服务器配置?  潮流网站制作头像软件下载,适合母子的网名有哪些?  Laravel如何为API编写文档_Laravel API文档生成与维护方法  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  如何确保西部建站助手FTP传输的安全性?  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  详解vue.js组件化开发实践  Firefox Developer Edition开发者版本入口  5种Android数据存储方式汇总  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  Laravel如何实现API速率限制?(Rate Limiting教程)  如何批量查询域名的建站时间记录?  利用 Google AI 进行 YouTube 视频 SEO 描述优化  Python函数文档自动校验_规范解析【教程】  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  Laravel如何处理CORS跨域请求?(配置示例)  如何挑选优质建站一级代理提升网站排名?  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  Laravel如何使用Blade模板引擎?(完整语法和示例)  ,怎么在广州志愿者网站注册?  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】