long id) {

if(mp3Infos != null) {

Mp3Info mp3Info = mp3Infos.get(position);

Log.d(“mp3Info–>”, mp3Info.toString());

Intent intent = new Intent();

intent.putExtra(“url”, mp3Info.getUrl());

intent.putExtra(“MSG”, AppConstant.PlayerMsg.PLAY_MSG);

intent.setClass(MainActivity.this, PlayerService.class);

startService(intent); //启动服务

}

}

}

3.   定义一个继承Service的服务类PlayerServie(未完善的Service类)

package com.wwj.sb.service;

import android.annotation.SuppressLint;

import android.app.Service;

import android.content.Intent;

import android.media.MediaPlayer;

import android.media.MediaPlayer.OnPreparedListener;

import android.os.IBinder;

import com.wwj.sb.domain.AppConstant;

@SuppressLint(“NewApi”)

public class PlayerService extends Service {

private MediaPlayer mediaPlayer = new MediaPlayer(); //媒体播放器对象

private String path; //音乐文件路径

private boolean isPause; //暂停状态

@Override

public IBinder onBind(Intent arg0) {

return null;

}

@Override

public int onStartCommand(Intent intent, int flags, int startId) {

if(mediaPlayer.isPlaying()) {

stop();

}

path = intent.getStringExtra(“url”);

int msg = intent.getIntExtra(“MSG”, 0);

if(msg == AppConstant.PlayerMsg.PLAY_MSG) {

play(0);

} else if(msg == AppConstant.PlayerMsg.PAUSE_MSG) {

pause();

} else if(msg == AppConstant

.PlayerMsg.STOP_MSG) {

stop();

}

return super.onStartCommand(intent, flags, startId);

}

/**

  • 播放音乐

  • @param position

*/

private void play(int position) {

try {

mediaPlayer.reset();//把各项参数恢复到初始状态

mediaPlayer.setDataSource(path);

mediaPlayer.prepare(); //进行缓冲

mediaPlayer.setOnPreparedListener(new PreparedListener(position));//注册一个监听器

}

catch (Exception e) {

e.printStackTrace();

}

}

/**

  • 暂停音乐

*/

private void pause() {

if (mediaPlayer != null && mediaPlayer.isPlaying()) {

mediaPlayer.pause();

isPause = true;

}

}

/**

  • 停止音乐

*/

private void stop(){

if(mediaPlayer != null) {

mediaPlayer.stop();

try {

mediaPlayer.prepare(); // 在调用stop后如果需要再次通过start进行播放,需要之前调用prepare函数

} catch (Exception e) {

e.printStackTrace();

}

}

}

@Override

public void onDestroy() {

if(mediaPlayer != null){

mediaPlayer.stop();

mediaPlayer.release();

}

}

/**

  • 实现一个OnPrepareLister接口,当音乐准备好的时候开始播放

*/

private final class PreparedListener implements OnPreparedListener {

private int positon;

public PreparedListener(int positon) {

this.positon = positon;

}

@Override

public void onPrepared(MediaPlayer mp) {

mediaPlayer.start(); //开始播放

if(positon > 0) { //如果音乐不是从头播放

mediaPlayer.seekTo(positon);

}

}

}

总结

其实要轻松掌握很简单,要点就两个:

  1. 找到一套好的视频资料,紧跟大牛梳理好的知识框架进行学习。
  2. 多练。 (视频优势是互动感强,容易集中注意力)

你不需要是天才,也不需要具备强悍的天赋,只要做到这两点,短期内成功的概率是非常高的。

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。

以上就是总结的关于在面试的一些总结,希望对大家能有些帮助,除了这些面试中需要注意的问题,当然最重要的就是刷题了,这里放上我之前整理的一份超全的面试专题PDF

还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

【Android核心高级技术PDF文档,BAT大厂面试真题解析】

这里只是整理出来的部分面试题,后续会持续更新,希望通过这些高级面试题能够降低面试Android岗位的门槛,让更多的Android工程师理解Android系统,掌握Android系统。喜欢的话麻烦点击一个喜欢在关注一下~
高级架构技术进阶脑图、Android开发面试专题资料*,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

【Android核心高级技术PDF文档,BAT大厂面试真题解析】

[外链图片转存中…(img-DqfkyUgY-1647756301384)]

这里只是整理出来的部分面试题,后续会持续更新,希望通过这些高级面试题能够降低面试Android岗位的门槛,让更多的Android工程师理解Android系统,掌握Android系统。喜欢的话麻烦点击一个喜欢在关注一下~

Android应用开发--MP3音乐播放器代码实现(一),学Android看这就完事了相关推荐

  1. Android应用开发--MP3音乐播放器代码实现(一)

    Android应用开发--MP3音乐播放器代码实现(一) 需求1:将内存卡中的MP3音乐读取出来并显示到列表当中 1. 从数据库中查询所有音乐数据,保存到List集合当中,List当中存放的是Mp3I ...

  2. Android应用开发--MP3音乐播放器代码实现(二)

    2013年5月25日 简.美音乐播放器开发 小巫在这里罗列这个播放器已经实现的功能: 1.   自动显示音乐列表 2.   点击列表播放音乐 3.   长按列表弹出对话框 4.   暂停音乐 5.   ...

  3. Android应用开发--MP3音乐播放器代码实现(二,android开发实例大全

    } switch (repeatState) { case isCurrentRepeat: // 单曲循环 repeatBtn .setBackgroundResource(R.drawable.r ...

  4. Android应用开发--MP3音乐播放器滚动歌词实现

    Android应用开发--MP3音乐播放器滚动歌词实现 2013年6月2日  简.美音乐播放器开发记录 -----前话 有网友给我博客评论说,让我借鉴好的Android代码,代码贴出来的时候最好整体先 ...

  5. Android应用开发--MP3音乐播放器Service实现

    Android应用开发--MP3音乐播放器Service实现 2013年5月29日简.美音乐播放器开发记录 让网友们久等啦,关于简.美音乐播放器的开发,最重要的Service类总算是要发博了.关于An ...

  6. Android应用开发 MP3音乐播放器滚动歌词实现

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Andr ...

  7. Android应用开发--MP3音乐播放器滚动歌词实现,flutter跳转动画

    2. 自定义View 3. 加入布局文件 4. 编写歌词处理类 5. 在Service里面实现同步更新歌词 ----代码实现 –LrcContent.java package com.wwj.sb.d ...

  8. 音乐应用开发Android应用开发--MP3音乐播放器界面设计(2)

    在写这篇文章之前,xxx已写过了几篇关于改音乐应用开发主题的文章,想要了解的朋友可以去翻一下之前的文章 Android应用开发--MP3音乐播放器界面计划(2) 2013年5月25日 简.美音乐播放器 ...

  9. Android应用开发--MP3音乐播放器界面设计(1)

    Android应用开发--MP3音乐播放器界面设计(1)                                           近期突然想自己开发一款MP3播放器,所以就有了上面的界面, ...

  10. Android应用开发--MP3音乐播放器界面设计(2)

    Android应用开发--MP3音乐播放器界面设计(2) 2013年5月25日 简.美音乐播放器开发 真得很无奈,原本打算很快结束这个实战项目的,但因为各种满课.学科.杂事给耽误了进度,现在小巫的这个 ...

最新文章

  1. 双十一报名截止,决赛在即!AI Challenger2018极客峰会免费抢票!
  2. maven入门(1-3)maven的生命周期
  3. CH Round #30 摆花[矩阵乘法]
  4. window 2008 和 windows vista windows 7 安装 MSMQ
  5. ASP.NET Web API 中的属性路由
  6. estimate()==>从一组对应的点估算变换是否成功
  7. 将控制台输出重定向到textbox的dotnet类
  8. java怎么设置窗体title_自定义Java窗口标题栏菜单
  9. Java三种方法实现字符串排序
  10. DoS攻击原理和防御方法
  11. HLK 微软驱动签名过程中踩过的坑
  12. 智能指针的标准之争:Boost vs. Loki [转]
  13. 携程PMO | 小罗说敏捷-WIP限制在制品
  14. Java Swing(二)按钮点击事件处理ActionListener
  15. eth一张_千呼万唤的以太坊20到底启动了!你们据有32个ETH吗?
  16. 微信零钱模拟器微信小程序源码下载查收充电器自动充钱
  17. win11突然断网,然后找不到wifi图标,记录一下
  18. Maven项目打包时报错Cannot invoke “org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion.atLe
  19. 亲测有效,mac电脑Office word修改默认粘贴格式 无格式粘贴
  20. SAP 公司间关联交易 外向交货单自动生成内向交货单报错:处理的单位XXXXXXX已经入库.无法进行分配

热门文章

  1. 海康相机IP搜索协议研究
  2. 沙盘推演具体包括哪些内容
  3. IEC 60335-2-21:2022 安全-第2-21部分:储水式热水器的特殊要求
  4. 记录下在linux下编译java源程序
  5. 8086微型计算机原理答案,8086微型计算机原理与应用(吴宁)习题参考答案(第一章)...
  6. 安装R和Rstudio win10
  7. TongWeb8知识总结
  8. 信息系统分析与设计相关
  9. 最好的免费在线UML图表工具
  10. 心在哪裡行動力就在那裡 戴晨志