安卓开发入门教程-通过MediaPlayer播放音频
发布日期:2021-06-29 18:30:17
浏览次数:2
分类:技术文章
本文共 1913 字,大约阅读时间需要 6 分钟。
关注 ,免费获取全套安卓开发学习资料
什么是MediaPlayer
MediaPlayer是用来播放音频的控件,可以支持播放本地及网络音频.
基础样例
- 代码
class MainActivity : AppCompatActivity() { private lateinit var mediaPlayer: MediaPlayer override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) startBtn.setOnClickListener { // playFromRaw()// playFromAssets()// playFromSdCard() playFromUrl() stopBtn.isEnabled = true startBtn.isEnabled = false } stopBtn.setOnClickListener { mediaPlayer.stop() stopBtn.isEnabled = false startBtn.isEnabled = true } } /** * 播放raw目录下文件 */ private fun playFromRaw() { mediaPlayer = MediaPlayer.create(this, R.raw.test) mediaPlayer.start() } /** * 播放assets目录下文件 */ private fun playFromAssets() { val fd = assets.openFd("test.mp3") mediaPlayer = MediaPlayer() mediaPlayer.setDataSource(fd.fileDescriptor, fd.startOffset, fd.length) mediaPlayer.prepare() mediaPlayer.start() } /** * 播放SD卡上文件 * 需要动态申请SD读权限 */ private fun playFromSdCard() { val path = "/sdcard/test.mp3" mediaPlayer = MediaPlayer() mediaPlayer.setDataSource(path) mediaPlayer.prepare() mediaPlayer.start() } /** * 播放URL对应文件 * * 如果希望反复重用同一个MediaPlayer,可以在setDataSource前调用:stop()和reset() */ private fun playFromUrl() { val audioUrl = "https://gitee.com/cxyzy1/audioPlayerDemo/raw/master/test.mp3" //这里给一个歌曲的网络地址就行了 mediaPlayer = MediaPlayer() mediaPlayer.setDataSource(audioUrl) mediaPlayer.prepareAsync() mediaPlayer.setOnPreparedListener { mp -> mp.start() } }}
- 权限申请(播放网络视频才需要) 在AndroidManifest中增加:
完整源代码
安卓开发入门教程系列汇总
开发语言学习
UI控件学习系列
关注头条号,第一时间获取最新文章:
转载地址:https://cxyxy.blog.csdn.net/article/details/108232722 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年04月27日 07时07分41秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
win7 64位下redis的安装
2019-04-30
winform中读写SQLite数据库例子
2019-04-30
ECharts上手例子
2019-04-30
SQLite 查询时异常:该字符串未被识别为有效的 DateTime 错误
2019-04-30
c# Socket发送与接收方法
2019-04-30
C#实现快捷键(系统热键)响应
2019-04-30
Windows下nginx+tomcat实现简单的负载均衡
2019-04-30
winform中SQLite的分页
2019-04-30
C# WinForm窗体及其控件自适应各种屏幕分辨率
2019-04-30
winform中dataGridView的简单分页
2019-04-30
dataGridView几个小技巧
2019-04-30
RecyclerView Item 行高定义无效的BUG
2019-04-30
markdown发生HTML渲染组件出错的解决方案
2019-04-30
android ScrollView嵌套WebView高度为0的BUG
2019-04-30
android 混淆代码后 app 运行报错时, 如何精准定位报错位置
2019-04-30
android 定位并通过百度在线查询详细地址教程
2019-04-30
android TextView 首行缩进与部分文字改变颜色大小效果
2019-04-30
android app 优化启动体验, 不闪白屏并且快速展示 splash
2019-04-30
INSTALL_FAILED_NO_MATCHING_ABIS 解决方案
2019-04-30
android 把打好的 apk 包通过 adb 的方式安装到手机上
2019-04-30