Android中如何播放音频
Android中如何播放音频
这篇“Android中如何播放音频”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Android中如何播放音频”文章吧。
在 Android 中播放音频文件一般都是使用 MediaPlayer 类来实现的,它对多种格式的音 频文件提供了非常全面的控制方法,从而使得播放音乐的工作变得十分简单。下表列出了 MediaPlayer 类中一些较为常用的控制方法。
方法名 | 功能描述 |
setDataSource() | 设置要播放的音频文件的位置。 |
prepare() | 在开始播放之前调用这个方法完成准备工作。 |
start() | 开始或继续播放音频。 |
pause() | 暂停播放音频。 |
reset() | 将 MediaPlayer 对象重置到刚刚创建的状态。 |
seekTo() | 从指定的位置开始播放音频。 |
stop() | 停止播放音频。调用这个方法后的 MediaPlayer 对象无法再播放音频。 |
release() | 释放掉与 MediaPlayer 对象相关的资源。 |
isPlaying() | 判断当前 MediaPlayer 是否正在播放音频。 |
getDuration() | 获取载入的音频文件的时长。 |
简单了解了上述方法后,我们再来梳理一下 MediaPlayer 的工作流程。首先需要创建出一个 MediaPlayer 对象,然后调用setDataSource()
方法来设置音频文件的路径,再调用prepare()
方法使 MediaPlayer 进入到准备状态,接下来调用 start()方法就可以开始播放音频,调用 pause()方法就会暂停播放,调用reset()
方法就会停止播放。 下面就让我们通过一个具体的例子来学习一下吧,新建一个 PlayAudioTest 项目,然后修改 activity_main.xml 中的代码,如下所示:
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><Buttonandroid:id="@+id/play"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:text="Play"/><Buttonandroid:id="@+id/pause"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:text="Pause"/><Buttonandroid:id="@+id/stop"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:text="Stop"/></LinearLayout>
布局文件中横向放置了三个按钮,分别用于对音频文件进行播放、暂停和停止操作。然 后修改 MainActivity 中的代码,如下所示:
publicclassMainActivityextendsActivityimplementsOnClickListener{privateButtonplay;privateButtonpause;privateButtonstop;privateMediaPlayermediaPlayer=newMediaPlayer();@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);play=(Button)findViewById(R.id.play);pause=(Button)findViewById(R.id.pause);stop=(Button)findViewById(R.id.stop);play.setOnClickListener(this);pause.setOnClickListener(this);stop.setOnClickListener(this);initMediaPlayer();//初始化MediaPlayer}privatevoidinitMediaPlayer(){try{Filefile=newFile(Environment.getExternalStorageDirectory(),"music.mp3");mediaPlayer.setDataSource(file.getPath());//指定音频文件的路径mediaPlayer.prepare();//让MediaPlayer进入到准备状态}catch(Exceptione){e.printStackTrace();}}@OverridepublicvoidonClick(Viewv){switch(v.getId()){caseR.id.play:if(!mediaPlayer.isPlaying()){mediaPlayer.start();//开始播放}break;caseR.id.pause:if(mediaPlayer.isPlaying()){mediaPlayer.pause();//暂停播放}break;caseR.id.stop:if(mediaPlayer.isPlaying()){mediaPlayer.reset();//停止播放initMediaPlayer();}break;default:break;}}@OverrideprotectedvoidonDestroy(){super.onDestroy();if(mediaPlayer!=null){mediaPlayer.stop();mediaPlayer.release();}}}
可以看到,在类初始化的时候我们就创建了一个 MediaPlayer 的实例,然后在 onCreate() 方法中调用了initMediaPlayer()
方法为 MediaPlayer 对象进行初始化操作。在 initMediaPlayer() 方法中,首先是通过创建一个 File 对象来指定音频文件的路径,从这里可以看出,我们需要 事 先 在 SD 卡 的 根 目 录 下 放 置 一 个 名 为 music.mp3 的 音 频 文 件 。 后 面 依 次 调 用 了setDataSource()
方法和prepare()
方法为 MediaPlayer 做好了播放前的准备。
接下来我们看一下各个按钮的点击事件中的代码。当点击 Play 按钮时会进行判断,如 果当前 MediaPlayer 没有正在播放音频,则调用 start()方法开始播放。当点击 Pause 按钮时会 判断,如果当前 MediaPlayer 正在播放音频,则调用 pause()方法暂停播放。当点击 Stop 按钮 时会判断,如果当前 MediaPlayer 正在播放音频,则调用 reset()方法将 MediaPlayer 重置为刚 刚创建的状态,然后重新调用一遍 initMediaPlayer()方法。
最后在onDestroy()
方法中,我们还需要分别调用stop()
和release()
方法,将与 MediaPlayer相关的资源释放掉。 这样一个简易版的音乐播放器就完成了,现在将程序运行到手机上
以上就是关于“Android中如何播放音频”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注恰卡编程网行业资讯频道。
推荐阅读
-
android(如何快速开发框架 小米note开发版MIUI,安卓6.0,怎么安装Xposed框架)
稳定版,你必须先根除。你上网搜索安卓可以叫别人s框架,对方可以把框架做成jar包,把这个jar包加载到项目目录的libs文件中使...
-
android(studio 虚拟机启动不了 android studio可以当模拟器用吗)
androidstudio可以当模拟器用吗?AmdCUP引导模拟器有点复杂。雷电模拟器上的抖音怎么登录不上?不是,闪电模拟调用...
-
从实践中学习手机抓包与数据分析(android 手机抓包app)
android手机抓包app?netcapture抓包精灵app(手机抓包工具)又名sslcapture,是什么专业的安卓手机抓...
-
android(studio全局搜索 android studio怎么看app界面)
androidstudio怎么看app界面?在设备桌面点击运用直接进入到App界面,就也可以参与其他你的操作了。android-...
-
怎么把android框架源代码拉到本地(android studio如何运行别人的源代码)
androidstudio如何运行别人的源代码?androidstudio点击刚建在列表中你选择导入module,导入即可在用...
-
android(studio2022年使用教程 怎么安装Android studio详细教程)
怎么安装Androidstudio详细教程?androidstudio中haxm直接安装的方法追加:1、简单的方法打开Andr...
-
怎么使用Android基准配置文件Baseline Profile方案提升启动速度
-
HTML5如何实现禁止android视频另存为
-
学java好还是学php好?
-
Android如何实现多点触控功能