android-铃声的设置与播放
在android系统中,不同铃声存放的铃声路径:/system/media/audio/ringtones 来电铃声/system/media/audio/notifications 短信通知铃声/system/media/audio/alarms 闹钟铃声铃声的设置:import java.io.File; import android.app.Activity; import android.content.Intent; import android.media.RingtoneManager; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.Button; public class Activity01 extends Activity { /* 3个按钮 */ private Button mButtonRingtone; private Button mButtonAlarm; private Button mButtonNotification; /* 自定义的类型 */ public static final int ButtonRingtone = 0; public static final int ButtonAlarm = 1; public static final int ButtonNotification = 2; /* 铃声文件夹 */ private String strRingtoneFolder = "/sdcard/music/ringtones"; private String strAlarmFolder = "/sdcard/music/alarms"; private String strNotificationFolder = "/sdcard/music/notifications"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mButtonRingtone = (Button) findViewById(R.id.ButtonRingtone); mButtonAlarm = (Button) findViewById(R.id.ButtonAlarm); mButtonNotification = (Button) findViewById(R.id.ButtonNotification); /* 设置来电铃声 */ mButtonRingtone.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View arg0) { if (bFolder(strRingtoneFolder)) { //打开系统铃声设置 Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); //类型为来电RINGTONE intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_RINGTONE); //设置显示的title intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "设置来电铃声"); //当设置完成之后返回到当前的Activity startActivityForResult(intent, ButtonRingtone); } } }); /* 设置闹钟铃声 */ mButtonAlarm.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View arg0) { if (bFolder(strAlarmFolder)) { //打开系统铃声设置 Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); //设置铃声类型和title intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_ALARM); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "设置闹铃铃声"); //当设置完成之后返回到当前的Activity startActivityForResult(intent, ButtonAlarm); } } }); /* 设置通知铃声 */ mButtonNotification.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View arg0) { if (bFolder(strNotificationFolder)) { //打开系统铃声设置 Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); //设置铃声类型和title intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "设置通知铃声"); //当设置完成之后返回到当前的Activity startActivityForResult(intent, ButtonNotification); } } }); } /* 当设置铃声之后的回调函数 */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub if (resultCode != RESULT_OK) { return; } switch (requestCode) { case ButtonRingtone: try { //得到我们选择的铃声 Uri pickedUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); //将我们选择的铃声设置成为默认 if (pickedUri != null) { RingtoneManager.setActualDefaultRingtoneUri(Activity01.this, RingtoneManager.TYPE_RINGTONE, pickedUri); } } catch (Exception e) { } break; case ButtonAlarm: try { //得到我们选择的铃声 Uri pickedUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); //将我们选择的铃声设置成为默认 if (pickedUri != null) { RingtoneManager.setActualDefaultRingtoneUri(Activity01.this, RingtoneManager.TYPE_ALARM, pickedUri); } } catch (Exception e) { } break; case ButtonNotification: try { //得到我们选择的铃声 Uri pickedUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); //将我们选择的铃声设置成为默认 if (pickedUri != null) { RingtoneManager.setActualDefaultRingtoneUri(Activity01.this, RingtoneManager.TYPE_NOTIFICATION, pickedUri); } } catch (Exception e) { } break; } super.onActivityResult(requestCode, resultCode, data); } //检测是否存在指定的文件夹 //如果不存在则创建 private boolean bFolder(String strFolder) { boolean btmp = false; File f = new File(strFolder); if (!f.exists()) { if (f.mkdirs()) { btmp = true; } else { btmp = false; } } else { btmp = true; } return btmp; } } 铃声的播放:player = new MediaPlayer(); try{ player.setDataSource(context, pickUri); }catch(Exception e){ e.printStackTrace(); } final AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); if(audioManager.getStreamVolume(AudioManager.STREAM_ALARM)!=0){ player.setAudioStreamType(AudioManager.STREAM_ALARM); player.setLooping(true); try { player.prepare(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } player.start(); }
转载于:https://www.cnblogs.com/Free-Thinker/p/6704982.html
android-铃声的设置与播放相关推荐
- Android IJKPlayer缓冲区设置以及播放一段时间出错解决方案
Android IJKPlayer缓冲区设置以及播放一段时间出错解决方案 参考文章: (1)Android IJKPlayer缓冲区设置以及播放一段时间出错解决方案 (2)https://www.cn ...
- android手机电话铃声设置,安卓手机铃声怎么设置
网上有很多安卓手机铃声的设置教程,说什么SD卡里建立这个那个的文件夹,那问题是怎么才能进到SD卡里去建立文件夹啊?手机里哪个选项里进去呢? 这里小编告诉你,可以通过电脑连接数据线管理SD卡.下面介绍两 ...
- Android来电铃声默认设置的实现方法与如何设置语音来电的默认铃声
Android来电铃声默认设置的实现方法与如何设置语音来电的默认铃声 一.Android来电铃声默认设置的实现方法 Andoird默认来电铃声的设置方法为修改build/target/product/ ...
- android 铃声 文件夹,安卓手机怎么设置铃声 安卓铃声文件夹在哪里设置
设置铃声应该是一件比较容易的事情,只是google在androi4.0以后,貌似不能自定义铃声了.这对于个性强的机友来说,这是个多么大的致命伤,但是如果你刷的好的rom还是有自定义铃声的选项的,那么安 ...
- android 铃声设置失败,Android铃声设置错误
点击按钮运行set_ringtone.没有错误,它设置铃声.但是当我第二次点击按钮时,出现错误.Android铃声设置错误 public void set_ringtone(Context conte ...
- ym——Android从零开始(28)(来电铃声的设置、手机闹钟、手势识别)(新)
转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! 来电铃声的设置.手机闹钟.手势识别来电铃声的设置 MediaStore简介 Media ...
- android 铃声设置流程讲解
总体思路为 : 1.截取铃声 2.保存入sd卡 3.获取铃声信息 4.将信息和文件路径写入数据库获得铃声Uri 5.将获得的Uri设置为铃声. 核心实现:在 public class DefaultR ...
- java设置铃声_在Android 7(API 24级)中,我的应用不允许静音手机(将铃声模式设置为静音)...
感谢您的回答,这里有一点点细节. 为了能够将铃声模式设置为静音,您必须具有访问通知策略的权限(如@ucsunil所说). 首先检查你是否有这个权限.如果没有,请打开应用程序的免打扰访问设置: Noti ...
- Android 11.0 当安装多个播放器时,设置默认播放器播放歌曲
目录 1.概述 2.当安装多个播放器时,设置默认播放器播放歌曲的核心类
- Android 12.0 系统多个播放器app时,设置默认播放器
目录 1.概述 2.系统多个播放器app时,设置默认播放器的核心类
最新文章
- xmanager破解待验证
- 消息消费端的确认机制
- PowerDesigner建数据库模型增加自定义扩展属性
- float浮点数的四舍五入
- ppt 2 html工具,PPTools PPT2HTML
- dnf服务器延迟怎么看,dnf如何判断自己网络还是服务器出问题_dnf判断自己网络还是服务器出问题详细介绍_游戏堡...
- 冷热水龙头_冷热水龙头结构图 冷热水龙头怎么拆
- Servlet CDI Example Analysis
- webgis之Openlayer加载wmts服务
- 【BZOJ 3652】大新闻 数位dp+期望概率dp
- 蒙哥英语原版阅读器android,蒙哥英语原版阅读器安卓版
- 英语单词最全的前后缀讲解
- 桌面快捷方式图标不能删除的原因以及处理方法
- 42表盘直径是从哪测量_手表尺寸怎么测量的?手表尺寸测量方法
- 无人机油动发动机调试
- siri中文语音助理_智能语音应用在哪些场景?
- 计量芯片应用心得之硬件篇
- Tesseract-OCR -01-Tesseract 介绍
- 提高效率:10款好用的谷歌chrome浏览器插件、扩展程序
- Five I/O Models