Android中铃声的使用

news/2024/11/29 21:41:56/

我之前也写过利用MediaPlayer播放音频,如果我们在应用中播放音乐,自然是不成问题。但是,如果我们是要播放一个简短的音效,那就有点不合适了。所以这里我们讲解一些Android中铃声的播放。

1.MediaPlayer的不足

  • MediaPlayer的初始化比较消耗资源,尤其是播放短小铃音时反应偏慢。
  • 一个MediaPlayer同时只能播放一个媒体文件,无法同时播放多个声音。
  • MediaPlayer只能播放已经完成编码的音频文件,无法直接播放原始音频,也不能流式播放(即边录边播)。

2.对于第一个问题,Android提供了铃音播放工具Ringtone。

3.三种铃音来源

<1>系统自带的铃音,其Uri的获取方式举例如下:

RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE)

铃声管理器支持的铃声类型包括如下几种

  • TYPE_RINGTONE:来电铃声
  • TYPE_NOTIFICATION:通知铃声
  • TYPE_ALARM:闹钟铃声 

<2>内部存储与SD卡上的铃音文件,其Uri的获取方式举例如下:

Uri.parse("file:///system/media/audio/ui/camera_click.ogg")//相机快门音

<3>App工程中res/raw目录下的铃声文件,其Uri的获取方式举例如下:

Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.ring);//从资源文件中获取铃音

4.铃声对象Ringtone的主要方法

  • play:开始播放铃声。
  • stop:停止播放铃声。
  • isPlaying:判断铃声是否正在播放。

5.代码示例

mRingtone = RingtoneManager.getRingtone(this,RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
mRingtone.play();


http://www.ppmy.cn/news/753520.html

相关文章

Android 获取系统声音的媒体,铃声,闹钟,通话 以及实现震动、铃声提醒

AudioManager mAudioManager (AudioManager) getSystemService(Context.AUDIO_SERVICE); //1.通话音量 int max mAudioManager.getStreamMaxVolume( AudioManager.STREAM_VOICE_CALL ); int current mAudioManager.getStreamVolume( AudioManager.STREAM_VOICE_CALL ); …

实现铃声声音渐强或减弱

最近在修改Android原生闹钟,为了增优化用户体验,在一个功能上进行了稍微的改进,原声的时钟设置铃音后,闹钟时间到,铃声的音量开始就是用户设置的音量。这样存在一个不是很友好的交互问题,例如用户设置的起床闹钟,用户正在睡梦中,一个很大的铃声响起,很可能吓着用户,对…

Android音量调节的实现(RingtoneManager和RingerVolumePreference)

Android音量调节的实现&#xff0c;分两种情况说明&#xff0c;一种是在settings的音量设置界面&#xff0c;按下侧键进行调节&#xff1b;另一种是在非settings界面&#xff0c;按下侧键进行音量调节。这两种调节方式的实现不一样&#xff0c;分别操作的是两个不同的音量SeekB…

Linux 内核源代码情景分析(四)

系列文章目录 Linux 内核设计与实现 深入理解 Linux 内核 Linux 设备驱动程序 Linux设备驱动开发详解 深入理解Linux虚拟内存管理 Linux 内核源代码情景分析&#xff08;一&#xff09; Linux 内核源代码情景分析&#xff08;二&#xff09; Linux 内核源代码情景分析&#xff…

Android开发音效增强中铃声播放Ringtone及声音池调度SoundPool的讲解及实战(超详细 附源码)

需要源码请点赞关注收藏后评论区留下QQ~~~ 一、铃声播放 虽然媒体播放器MediaPlayer既可用来播放视频&#xff0c;也可以用来播放音频&#xff0c;但是在具体的使用场合&#xff0c;MediaPlayer存在某些播音方面的不足之处 包括以下几点 1&#xff1a;初始化比较消耗资源 尤其…

2021 红米6A MIUI11稳定版刷开发版 方法

1.下载红米 6A (cactus) 开发版(公测)刷机包 MIUI10 9.9.3 2.开发者中解锁BL 3.将开发版(公测)刷机包放到手机中 4.直接选择刷机包进行更新 一定要先解锁BL再刷&#xff0c;否则会验证不通过。

小米6android0root,小米 红米6 pro(安卓9.0)获取Root权限服务含精简系统方案

安卓手机一旦获取Root权限就好像拥有了全世界 独家系统精简方案&#xff0c;优化系统流畅度&#xff0c;还你如初的感受。 刷前须知&#xff1a; 使用本服务前&#xff0c;请保证手机未进行刷机或root权限 使用本服务不会清除手机数据&#xff0c;但建议备份数据后使用 请保证刷…

小米红米6Pro线刷兼救砖_解账户锁_纯净刷机包_教程

* 确保你的手机已经解BL锁了&#xff0c;如果没有解BL锁的话 查看教程 * 手机先关机&#xff0c;并且手机先不要用数据线连接电脑&#xff0c;先断开数据线。 一&#xff1a;下载刷机包并解压 解账户锁刷机包下载 远程刷机 二&#xff1a;打开rom文件夹里找到《Fastb…