播放音频
本文旨在实践Android中播放声音的两种常见方法;
项目地址:https://github.com/avnewu/sounddemo
一.
播放短暂的声音如爆炸声警告音等;
使用SoundPool类,声音文件调入内存中,播放响应快,但是占用内存;
AudioManager manager = (AudioManager) getSystemService(AUDIO_SERVICE); float maxvolume = manager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); float currentVolume = manager.getStreamVolume(AudioManager.STREAM_MUSIC); final float volume = currentVolume / maxvolume; sound1Btn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { soundPool.play(soundid, volume, volume, 1, 0, 1); } });
二.
播放时间较长的背景音乐,文件存储在SD卡上;
使用MediaPlayer类,比前者麻烦一点,遵循生命周期,
1.实例化MediaPlayer;
2.设置音频资源;
3.为播放音频做准备;
4.播放;
try { mediaPlayer.setDataSource("/sdcard/dl.mid"); } catch (Exception e) { e.printStackTrace(); } try { mediaPlayer.prepare(); } catch (Exception e) { e.printStackTrace(); } if (isPlaying) { mediaPlayer.pause(); sound2Btn.setText("Play a music on SDcard"); isPlaying = false; } else { mediaPlayer.start(); mediaPlayer.setLooping(true); sound2Btn.setText("Click again to pause "); isPlaying = true; }
作者:小文字
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
分类:
android游戏进阶
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?