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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/372401.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apache Commons SCXML:有限状态机实现

本文提到有限状态机(FSM),SCXML(状态图可扩展标记语言)和Apache Common的SCXML库。 本文还提供了基本的ATM有限状态机示例代码。 有限状态机: 您可能还记得计算机科学课程中的有限状态机。 FSM用于设计计算…

第二十章、分离应用程序逻辑并处理事件

理解委托 委托是对方法的引用。(之所以称为委托,是因为一旦被调用,就将具体的处理“委托”给引用的方法) 委托对象引用了方法,和将int赋值给int变量一样,是将方法引用赋给委托对象。 Processor p new Proc…

pymol怎么做底物口袋表面_怎么从文献中发掘一篇新文章?

本文来自微信公众号:X-MOLNews可能你的导师也曾说过这样的话——盯着Nature、Science级别的文章做,可能最终会中十分的文章;如果盯着十分的文章做,可能最终发出来也就五六分;但如果就为了发个文章混毕业,很…

如何分析线程转储– IBM VM

本文是我们的线程转储分析系列的第4部分,它将为您概述什么是IBM VM的JVM线程转储以及您将找到的不同线程和数据点。 您将看到和学习​​到,IBM VM Thread Dump格式是不同的,但是提供了更多现成的故障排除数据。 在这一点上,您应该…

VMware vSphere克隆虚拟机

参考资料:http://blog.csdn.net/shen_jz2012/article/details/484167711. 首先将你所要克隆的虚拟机关掉2. 选择你的ESXI服务器选中"配置",然后选中存储器右键你的存储介质,比如我的是datastore1,选择“浏览数据存储”。…

将本地jar包倒入maven项目类库中

有两种方法&#xff1a;1.本地下载maven并配置环境变量&#xff0c;然后运行cmd控制台输入 mvn install:install-file -Dfile本地jar路径 -DgroupId -DartifactId -Dpackagingjar -Dversion -DgeneratePomtrue. 2.直接在pom.xml中对应的依赖下面添加<scope>system&l…

Spring和JSF集成:分页

处理大型数据集时&#xff0c;通常需要以分页格式显示数据。 分页是一个有趣的问题&#xff0c;因为它倾向于跨越应用程序的所有层&#xff0c;从视图层通过应用程序服务一直到对数据库的原始调用。 在获取分页数据时&#xff0c;有一些非常好的解决方案。 如果您使用的是JPA&a…

三重积分平均值_直角坐标系下的三重积分的几何可视化解释图解高等数学

12.4 直角坐标系下的三重积分三重积分假设 F(x,y,z) 为一个空间有界闭区域 D 上的函数. D 为下面立体椭球所占区域. 将空间区域分割成小长方块. 体积记为 ΔVk, 其长宽高分别为Δxk, Δyk, Δzk , 并有下列的求和式:观察下面动画, 当空间不断分割, 每个小方块的体积 ΔVk 不断变…

最短网络Agri-Net

【例4-11】、最短网络Agri-Net【问题描述】农民约翰被选为他们镇的镇长&#xff01;他其中一个竞选承诺就是在镇上建立起互联网&#xff0c;并连接到所有的农场。当然&#xff0c;他需要你的帮助。约翰已经给他的农场安排了一条高速的网络线路&#xff0c;他想把这条线路共享给…

cors-synchronous-requests-not-working-in-firefox

http://stackoverflow.com/questions/16668386/cors-synchronous-requests-not-working-in-firefox转载于:https://www.cnblogs.com/diyunpeng/p/5829594.html

硬盘接口协议

硬盘是电脑主要的存储媒介之一&#xff0c;由一个或者多个铝制或者玻璃制的碟片组成。碟片外覆盖有铁磁性材料。硬盘有固态硬盘&#xff08;SSD 盘&#xff0c;新式硬盘&#xff09;、机械硬盘&#xff08;HDD 传统硬盘&#xff09;、混合硬盘&#xff08;HHD 一块基于传统机械…

图的表示

Python 数据结构与算法——图&#xff08;Graph&#xff09; 1. 邻接矩阵 vs 邻接表&#xff08;压缩的邻接矩阵&#xff09; 邻接矩阵的缺点是&#xff1a; 空间占用与结点数的平方成正比&#xff0c;可能带来很大的浪费&#xff1b;邻接矩阵不容易增加新的结点&#xff0c;不…

在Java Web应用程序中阻止CSRF

跨站点请求伪造攻击&#xff08;CSRF&#xff09;在Web应用程序中非常常见&#xff0c;如果允许&#xff0c;可能会造成重大危害。 如果您从未听说过CSRF&#xff0c;建议您查看有关它的OWASP页面 。 幸运的是&#xff0c;阻止CSRF攻击非常简单&#xff0c;我将向您展示它们的工…

windows命令行无法启动redis_windows系统安装redis

1、下载最新redis https://github.com/MicrosoftArchive/redis/releases我选择下载msi版本的2.双击下载包安装3.设置redis环境变量&#xff0c;把redis路径配置到系统变量path值中4启动redis&#xff0c;cmd进入安装好redis文件夹 输入&#xff1a;如果redis启动出错Creating S…

SQL Server 筛选时间区间

一、SQL直接判断 select * from login where pass>2013/03/25 and pass < 2017/04/24 二、DATEDIFF() 函数返回两个日期之间的时间 --语法 DATEDIFF(datepart,startdate,enddate) --开始时间 startdate --结束时间 enddate --datepart datepart缩写年yy, yyyy季度qq, …

OpenShift Express Web管理控制台:入门

本周&#xff0c; 最新版本的OpenShift为已经很棒的PaaS Cloud提供商带来了两个非常好的功能。 首先&#xff0c;JBoss AS已从7.0升级到7.1&#xff0c;并且所有新的Express Web Management Console已作为预览发布。 在本文中&#xff0c;我们将研究如何使用此新控制台&#xf…

Linux-IP地址后边加个/8(16,24,32)是什么意思?

是掩码的位数 A类IP地址的默认子网掩码为255.0.0.0&#xff08;由于255相当于二进制的8位1&#xff0c;所以也缩写成“/8”&#xff0c;表示网络号占了8位&#xff09;; B类的为255.255.0.0&#xff08;/16&#xff09;; C类的为255.255.255.0(/24) /30就是255…

女士细线毛衣起多少针_从起针到缝合,教你织毛衣的各种要点(详细教程)

新手学织毛衣看过来&#xff0c;7大编织要点帮你解决织好一件毛衣的基础问题&#xff0c;满满的干货&#xff0c;每点都值得学习!一、起针二、棒针符号三、如何织小样四、依据小样推算针数收挂肩的推算五、斜肩针数的推算开前、后领的位置与针数六、袖山的推算七、如何上袖子一…

关于OPENSSL的使用

#import <Foundation/Foundation.h> interface RSAEncryptor : NSObject /** * 加密方法 * * param str 需要加密的字符串 * param path .der格式的公钥文件路径 */ (NSString *)encryptString:(NSString *)str publicKeyWithContentsOfFile:(NSString *)path; /*…

Jelastic Java云端平台

谁在Jelastic背后&#xff1f; 那是我的第一个问题&#xff0c;因此我浏览了Jelastic网站。 回答此问题的最佳方法是查看“ Jelastic团队”部分。 创始人&#xff0c;顾问&#xff0c;特殊合作伙伴构成了一支真正的专业团队。 作为特殊的合作伙伴&#xff0c;您会发现MySQL&am…