关于andorid播放内部铃声和震动的简单介绍
手机震动提示
关于Android设备震动的情况有一个内部类 Vibrator
private Vibrator vibrator; //定义一个内部类
将需要播放的文件放置在相关的文件夹下面,例如下面这个我将danger.mp3存放在assets这个文件夹下面
![]()
接下来就是进行代码控制了
bt_getBatter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
vibrator = (Vibrator)getApplicationContext().getSystemService(VIBRATOR_SERVICE);
// 等待3秒,震动3秒,从第0个索引开始,一直循环
vibrator.vibrate(new long[]{500, 500}, 0);
isvibrator = !isvibrator;
if (isvibrator){ //判断为 boolean值,用户开关播放的
vibrator.cancel();
player.stop();//这个是铃声停止的,先不用看
}else {
playRing();//这个是铃声播放的,暂时不用看
}
}
});
解释下上面的代码
vibrator = (Vibrator)getApplicationContext().getSystemService(VIBRATOR_SERVICE);是指拿到这个可以震动的服务
vibrator.vibrate(new long[]{500, 500}, 0);指的是等待300毫秒,震动300毫秒,一直循环下去,执行到这里,如果设备有这个模块就会间隔性的震动
vibrator.cancel();是停止震动的借口,第二次点击根据判断标志就可以停止震动
手机响铃提示
和设备震动一样,这个也是有系统内部提供的类MediaPlayer
private MediaPlayer playRing() {
try {
player = new MediaPlayer();
assetManager = getAssets();
AssetFileDescriptor fileDescriptor = assetManager.openFd("danger.mp3");
player.setDataSource(fileDescriptor.getFileDescriptor(),fileDescriptor.getStartOffset(),
fileDescriptor.getStartOffset());
player.prepare();
player.start();
} catch (IOException e) {
e.printStackTrace();
}
return player;
}
调用这个方法就是加载资源文件下面的文件资源
player.stop();这个就会停止当前的播放
播放系统自带的,例如电话铃声
public void PlaySound(final Context context) {
Log.e("ee", "正在响铃");
// 使用来电铃声的铃声路径
Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
// 如果为空,才构造,不为空,说明之前有构造过
if(mMediaPlayer == null)
mMediaPlayer = new MediaPlayer();
try {
mMediaPlayer.setDataSource(context, uri);
mMediaPlayer.setLooping(true); //循环播放
mMediaPlayer.prepare();
mMediaPlayer.start();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)