最近迷上了AndroidAPP,看了点资料就边学边写,只是打发时间的个人爱好,工具为Android Studio3.0.1,为了偷懒,准备给孩子写个听写APP,思路是到时候从APP下载音频资源包到SD卡,APP播放直接读取储存路径下的音频,不用从Android自带的媒体库读取(因为还不会遍历…)。先弄个最简单的指定路径播放和APP资源里MP3播放。

APP资源里MP3播放


XML 略,
java代码:

//通过create()方法设置数据源,则不能写mediaPlayer.prepare()方法final MediaPlayer mp =MediaPlayer.create(this, R.raw.yes);//为按钮play添加监听事件play.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {mp.start();Log.v("0001","Main01");}});

播放指定路径的MP3

使用的Genymotion模拟器,这是拷贝的MP3文件

代码中用setDataSource指定路径时就要用这个路径,

mp.setDataSource("/storage/emulated/0/mp3/002.mp3")

在Android Device Monitor中看这个路径为:/mnt/shell/emulated/0/mp3/001.mp3 用这个路径是不能找到音频的,但是我用真机时,用Android Device Monitor中的实际地址能找到音频文件,不懂。
XML就是3个功能键,下面直接上java代码:

public class bao_cun extends AppCompatActivity {/*** Isstart 为播放状态变量,0为停止,1为播放,2为暂停* currentPlayPosition 为记录暂停时的播放时间变量,继续播放时从这个变量时间开始播放。*///实例化MediaPlayer,并设定静态变量 mpprivate MediaPlayer mp = new MediaPlayer();public static MediaPlayer playe = null;//播放状态private int Isstart  = 0;//音乐暂停后读取标记变量private int currentPlayPosition;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//注册XMLsetContentView(R.layout.activity_bao_cun);TextView fanHui = (TextView) findViewById(R.id.fanHui_01);Button sd_boFang = (Button) findViewById(R.id.sD_bofang);Button sd_tingZhi = (Button) findViewById(R.id.sD_tingZhi);Button sd_zanTing = (Button) findViewById(R.id.sD_zanTing);//返回前一页fanHui.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(bao_cun.this, MainActivity.class);startActivity(intent);}});//暂停sd_zanTing.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(Isstart == 1){//isPlaying()返回 boolean,是否正在播放if(mp != null && mp.isPlaying()){//记录暂停时的时间currentPlayPosition = mp.getCurrentPosition();mp.pause();Isstart = 2;}}else {//读取并跳至记录的暂停时的时间mp.seekTo(currentPlayPosition);mp.start();Isstart = 1;}}});//停止sd_tingZhi.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(mp != null){mp.stop();mp.reset();Isstart = 0;}}});//播放按钮监听sd_boFang.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//  跳转kaibo1();//输出日志Log.v("0001","yunxing");}});}private void kaibo1() {//如果是停止状态就重新开始播放if(Isstart == 0) {//防错误处理try {//mp3实际地址(三星手机)// mp.setDataSource("/storage/extSdCard/001.mp3");//模拟器地址mp.setDataSource("/storage/emulated/0/mp3/002.mp3");//输出调试信息System.out.println("OK001");//prepare方法是将资源同步缓存到内存中,一般加载本地较小的资源可以用这个//通过create()方法设置数据源,则不能写mediaPlayer.prepare()方法mp.prepare();System.out.println("OK002");//开始播放mp.start();Isstart = 1;//错误类型} catch (IOException e) {//出现错误处理e.printStackTrace();System.out.println("OK003");}//如果是暂停就继续播放}else if(Isstart == 2){//读取并跳至记录的暂停时的时间mp.seekTo(currentPlayPosition);mp.start();Isstart = 1;}else {//在播放时就无动作}}}

这里主要是借鉴了别人的代码,直通车:https://blog.csdn.net/u012156341/article/details/78979835
我其实就是把代码撸了遍,大概搞清了各自的作用。个人认为学东西在怎么看都没自己实际做一下来的快。

这里说明一下,近期学校老师要求听写就给孩子说汉语,让孩子写英文,所以这个APP就没必要写下去了。这会又把放了一段时间的8266弄出来折腾了。

Android Studio学写英语听写APP(音乐播放器)一相关推荐

  1. 基于Android studio有声听书系统 java音乐播放器系统

    1:注册登录:未注册用户首先进行账号注册,注册成功后进行登录,已注册用户直接输入账号密码进行登录,登录成功后进入主页面. 2:主页面:通过左右滑动可以实现对推荐界面.订阅界面.历史界面的切换,推荐界面 ...

  2. android 音乐播放器专辑图片旋转,Android应用开发之简易、大气音乐播放器实现专辑倒影效果...

    今天要实现的功能是实现专辑倒影效果,这个功能已经属于图像处理方面的了,对图像处理我不怎么在行,等一下会介绍一个很实用的工具类,专门用来进行图像处理的.这个工具类不是我写的,我只是拿来用到自己的项目当中 ...

  3. HTML+CSS+原生JS写一个简易的音乐播放器(仅播放一首歌)

    用HTML+CSS+原生JS写一个简易的音乐播放器(仅播放一首歌) 效果如下:(鼠标点击按钮可以实现播放或暂停,按钮会旋转,实现了歌词同步,功能还需改进) 代码如下: <!DOCTYPE htm ...

  4. 用Qt写一个简单的音乐播放器(三):增加界面(播放跳转与音量控制)

    一.前言 在用Qt写一个简单的音乐播放器(一):使用QMediaPlayer播放音乐中,我们已经知道如何去使用QMediaPlayer播放音乐. 在用Qt写一个简单的音乐播放器(二):增加界面(开始和 ...

  5. 用Qt写一个简单的音乐播放器(六):显示歌词(正则表达式)

    一.前言 在用Qt写一个简单的音乐播放器(一):使用QMediaPlayer播放音乐中,我们已经知道如何去使用QMediaPlayer播放音乐. 在用Qt写一个简单的音乐播放器(二):增加界面(开始和 ...

  6. 用Qt写一个简单的音乐播放器(一):使用QMediaPlayer播放音乐

    一.前言 QMediaplayer可以用于解析音频文件和视频文件,继承自QMediaObject,涉及到的对象为QMediaContent.QMediaObject可以提供关于媒体内容的接入,通过UR ...

  7. 使用python加PyQt5,利用QMediaPlayer写一个简易的音乐播放器(进度条拖动,音量改变,播放停止切换,歌曲列表))

    当你学习了python之后,总想着利用它去做些什么,无论是制作小工具还是小游戏,都是一种锻炼. 那么,利用python加上PyQt5写一个简单的音乐播放器,可能会是一个有趣的体验. 下面我会分享一下如 ...

  8. 用Qt写一个简单的音乐播放器(五):歌曲播放时间显示

    一.前言 在用Qt写一个简单的音乐播放器(一):使用QMediaPlayer播放音乐中,我们已经知道如何去使用QMediaPlayer播放音乐. 在用Qt写一个简单的音乐播放器(二):增加界面(开始和 ...

  9. 用Qt写一个简单的音乐播放器(七):界面美化(QSS样式表)

    一.前言 在用Qt写一个简单的音乐播放器(一):使用QMediaPlayer播放音乐中,我们已经知道如何去使用QMediaPlayer播放音乐. 在用Qt写一个简单的音乐播放器(二):增加界面(开始和 ...

最新文章

  1. 《JavaScript启示录》——1.21 JavaScript对象和Object()对象
  2. 软件性能测试关注点,盘点性能测试必须掌握的技术点
  3. MAT之SVM/BP:SVR(better)和BP两种方法比较且实现建筑物钢筋混凝土抗压强度预测
  4. java安全 ——JAAS(Java 认证和授权服务)开发指南
  5. linux 控制终端卡,配置通过串口控制linux操作系统的终端
  6. [JZOJ P1271] [DP]集合求和
  7. oracle 复制数据 insert into、as select
  8. zend studio7 在 ubuntu9.10 中按钮失效只能用回车解决办法
  9. 第二季-专题16-LCD亮起来
  10. Hibernate常用配置
  11. 数据库小白 T-SQL练习500题 超详细!带素材!持续更新中~
  12. Selenium_python 断言
  13. Qt+ECharts开发笔记(三):ECharts的柱状图介绍、基础使用和Qt封装Demo
  14. ubuntu安装pytorch3d
  15. 京东、闲鱼、转转的二手战场
  16. linux文件句柄上线的修改,修改Linux文件句柄限制
  17. 3 MyBatis动态SQL
  18. c语言直线和椭圆的交点,直线与椭圆相交求交点
  19. 2021年9月CISP-A(注册信息系统审计师)培训圆满结束
  20. 基于改进神经网络的风电功率预测(Matlab代码实现)

热门文章

  1. 相机模型-鱼眼模型/鱼眼镜头标定基本原理及实现(2)
  2. 视频分辨率、码流、帧率、带宽、存储空间
  3. 【硬件设计】AC-DC整流桥电路
  4. 疯子坐飞机,第1个人疯了,随便坐下,第n个人能够坐在自己位置上的概率
  5. java入侵检测源码_Java Web中的入侵检测及简单实现
  6. Cloudxns使用心得
  7. d58站群inc.php,站群 - 蜘蛛侠站群_站群程序_D58.NET站群系统
  8. MONTHS_BETWEEN
  9. Android Q(10)简介
  10. idea报错Artifact is not deployed. Press ‘Deploy‘ to start deployment