android-铃声的设置与播放

news/2024/11/17 5:56:23/
在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. */@Overridepublic 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() {@Overridepublic void onClick(View arg0){if (bFolder(strRingtoneFolder)){//打开系统铃声设置Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);//类型为来电RINGTONEintent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_RINGTONE);//设置显示的titleintent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "设置来电铃声");//当设置完成之后返回到当前的ActivitystartActivityForResult(intent, ButtonRingtone);}}});/* 设置闹钟铃声 */mButtonAlarm.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View arg0){if (bFolder(strAlarmFolder)){//打开系统铃声设置Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);//设置铃声类型和titleintent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_ALARM);intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "设置闹铃铃声");//当设置完成之后返回到当前的ActivitystartActivityForResult(intent, ButtonAlarm);}}});/* 设置通知铃声 */mButtonNotification.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View arg0){if (bFolder(strNotificationFolder)){//打开系统铃声设置Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);//设置铃声类型和titleintent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION);intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "设置通知铃声");//当设置完成之后返回到当前的ActivitystartActivityForResult(intent, ButtonNotification);}}});}/* 当设置铃声之后的回调函数 */@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data){// TODO Auto-generated method stubif (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 blocke.printStackTrace();}player.start();}



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

相关文章

android触摸提示音设置,vivo X6怎么关闭触摸提示音 vivo X6触摸提示音设置图文教程...

vivo X6触摸提示音怎么关闭呢?很多朋友们都不喜欢触摸提示音的存在,当然也有不少强迫症者不开触摸提示音就不适应,而像小编这种强迫症者来说不太喜欢开启。小编认为触摸提示音开启又费电,又“吵”,实在想不到它存在理由…

微信铃声怎么设置?微信铃声设置仅需3步

微信铃声怎么设置?自打微信腾空出世之后,已经成为我们日常生活中不可或缺的一份子,微信身为社交圈的“骨干精英”,自然会跟随潮流而优化的越来越好!而微信铃声就是一个例子! 以前我们接电话打电话都是用手机…

微信设置专属铃声,你有什么好歌推荐

微信已然成为公认的国民级社交软件了,现在大部分人发展一段社交关系的第一句话就是“咱们加个微信吧?”随着微信的普及,我们日常的通讯方式也从打电话变成了微信语音通话,既不用使用话费,也不用担心信号问题。 你是不是…

手机技巧:微信语音铃声怎么设置?

微信语音铃声怎么设置?微信随着版本的升级更新,优化的越来越好,功能也越来越多,现在就连语音通话时的铃声也有了,设置之后就不再是单调的默认响铃提醒。但还有好多小伙伴不知道怎么设置,下面来看看这铃声是…

常规Resnet模型权重转Detectron2格式模型

最佳想把在torchversion库加载的预训练权重基础上训练过的模型权重加载到Detectron2框架的任务中进行实验。 发现两者必须经过一个转换,实验过后有效的转换方式如下所示, #!/usr/bin/env python import pickle as pkl import sysimport torchif __name…

【C++学习笔记】C++中的异常概念异常的使用注意事项异常的优缺点

异常 1 C语言传统的处理异常的方式2 C异常的概念3 异常的使用以及注意事项3.1 异常的简单使用3.2 使用异常的注意事项3.3 异常的重新抛出3.4 异常规范3.5 异常安全 4 C标准库的异常体系5 异常的优缺点6 总结 1 C语言传统的处理异常的方式 C语言传统的错误处理机制:…

ipa上架App Store【uniapp-ios】

前置条件:已获取到.mobileprovision描述文件、.p12证书并打包生成ipa包 (如果还没获取证书、描述文件等可以去看我前两篇博客:uniapp-ios打包步骤 、uniapp-ios打包安装测试。一篇是已经付费了即已经注册了Apple Developer Program&#xf…

机械键盘轴体知识

机械键盘-主流轴体一览 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/105927020