简单实现Android本地音乐播放器
发布时间 - 2026-01-11 00:56:26 点击率:次音乐播放需要调用service,在此,只是简单梳理播放流程。
public class PlayMusicService extends Service {
//绑定服务 调用服务的方法。
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<EditText
android:id="@+id/et_path"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="请输入要播放文件的路径" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/bt_play"
android:onClick="play"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="播放" />
<Button
android:id="@+id/bt_pause"
android:onClick="pause"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="暂停" />
<Button
android:id="@+id/bt_stop"
android:onClick="stop"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="停止" />
<Button
android:id="@+id/bt_replay"
android:onClick="replay"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="重播" />
</LinearLayout>
</LinearLayout>
public class MainActivity extends Activity {
private EditText et_path;
private MediaPlayer mediaPlayer;
private Button bt_play,bt_pause,bt_stop,bt_replay;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_path = (EditText) findViewById(R.id.et_path);
bt_play = (Button) findViewById(R.id.bt_play);
bt_pause = (Button) findViewById(R.id.bt_pause);
bt_stop = (Button) findViewById(R.id.bt_stop);
bt_replay = (Button) findViewById(R.id.bt_replay);
}
/**
* 播放
* @param view
*/
public void play(View view) {
String filepath = et_path.getText().toString().trim();
File file = new File(filepath);
if(file.exists()){
try {
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(filepath);//设置播放的数据源。
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.prepare();//准备开始播放 播放的逻辑是c代码在新的线程里面执行。
mediaPlayer.start();
bt_play.setEnabled(false);
mediaPlayer.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
bt_play.setEnabled(true);
}
});
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(this, "播放失败", 0).show();
}
}else{
Toast.makeText(this, "文件不存在,请检查文件的路径", 0).show();
}
}
/**
* 暂停
* @param view
*/
public void pause(View view) {
if("继续".equals(bt_pause.getText().toString())){
mediaPlayer.start();
bt_pause.setText("暂停");
return;
}
if(mediaPlayer!=null&&mediaPlayer.isPlaying()){
mediaPlayer.pause();
bt_pause.setText("继续");
}
}
/**
* 停止
* @param view
*/
public void stop(View view) {
if(mediaPlayer!=null&&mediaPlayer.isPlaying()){
mediaPlayer.stop();
mediaPlayer.release();
mediaPlayer = null;
}
bt_pause.setText("暂停");
bt_play.setEnabled(true);
}
/**
* 重播
* @param view
*/
public void replay(View view) {
if(mediaPlayer!=null&&mediaPlayer.isPlaying()){
mediaPlayer.seekTo(0);
}else{
play(view);
}
bt_pause.setText("暂停");
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Android本地音乐播放器
# Android音乐播放器
# Android播放器
# Android实现简单音乐播放器(MediaPlayer)
# Android简易音乐播放器实现代码
# 教你轻松制作Android音乐播放器
# android暂停或停止其他音乐播放器的播放实现代码
# Android编程开发音乐播放器实例
# Android音乐播放器制作 扫描本地音乐显示在手机(一)
# android实现音乐播放器进度条效果
# Android MediaPlayer实现音乐播放器实例代码
# Android 音乐播放器的开发实例详解
# Android实现简单的音乐播放器
# 在此
# 请输入
# 不存在
# 绑定
# 大家多多
# 音乐播放
# 请检查
# MainActivity
# context
# vertical
# id
# EditText
# gt
# orientation
# tools
# res
# apk
# layout_height
# match_parent
# layout_width
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何用搬瓦工VPS快速搭建个人网站?
专业商城网站制作公司有哪些,pi商城官网是哪个?
如何在Windows服务器上快速搭建网站?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
中山网站制作网页,中山新生登记系统登记流程?
如何快速建站并高效导出源代码?
Android利用动画实现背景逐渐变暗
大同网页,大同瑞慈医院官网?
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
JS弹性运动实现方法分析
JavaScript如何实现类型判断_typeof和instanceof有什么区别
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】
Python高阶函数应用_函数作为参数说明【指导】
重庆市网站制作公司,重庆招聘网站哪个好?
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
如何基于PHP生成高效IDC网络公司建站源码?
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
如何在自有机房高效搭建专业网站?
如何快速搭建高效香港服务器网站?
js实现点击每个li节点,都弹出其文本值及修改
JS碰撞运动实现方法详解
免费视频制作网站,更新又快又好的免费电影网站?
Laravel怎么连接多个数据库_Laravel多数据库连接配置
如何快速上传建站程序避免常见错误?
html5的keygen标签为什么废弃_替代方案说明【解答】
Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程
如何在不使用负向后查找的情况下匹配特定条件前的换行符
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
Laravel定时任务怎么设置_Laravel Crontab调度器配置
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
Laravel如何实现数据库事务?(DB Facade示例)
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑
laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
Laravel中的withCount方法怎么高效统计关联模型数量
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
微信小程序 HTTPS报错整理常见问题及解决方案
Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
微信小程序 五星评分(包括半颗星评分)实例代码
如何在建站之星网店版论坛获取技术支持?

