android - Android 上的声音(MediaPlayer)不能与振动同时工作
问题描述
我正在尝试同时创建带有声音和振动的警报。当应用程序在前台运行时,一切正常,声音和振动同时工作。但是当应用程序最小化时,只有声音有效。
通知从服务启动:
startSoundForNotif(STATE_TIMER_FINISHED);
startVibrator();
...
private void startSoundForNotif(int State) {
if (sPrefSettings.getBoolean("switch_notif",true)) {
int mSoundRes;
if (State == STATE_TIMER_FINISHED) {
mSoundRes = sPrefSettings.getInt(KEY_PREF_SOUND_RES, 0);
} else {
mSoundRes = sPrefSettings.getInt(KEY_PREF_SOUND_BREAK_RES, 0);
}
if (mSoundRes == 0) {
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
MediaPlayer mPlayer = MediaPlayer.create(getApplication(), defaultSoundUri);
mPlayer.start();
} else {
MediaPlayer mPlayer = MediaPlayer.create(getApplication(), mSoundRes);
mPlayer.start();
}
}
}
private void startVibrator() {
int mVibroNum = sPrefSettings.getInt(KEY_PREF_VIBRO_NUM,0);
if (mVibroNum!=0){
Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
ListSounds mListSounds = new ListSounds();
long [][] ListVibro = mListSounds.getListVibro();
if (vibrator.hasVibrator()) {
vibrator.vibrate(ListVibro[mVibroNum], -1);}
}
}
LogCat 中的错误:
2070-2224/? E/VibratorServiceInjector: notification vibrate too often, skip
699-699/? E/VibratorService: zjl vibrator on 30ms
有人可以帮忙解决吗?
解决方案
推荐阅读
- javascript - 如何更改条形图中标签的字体系列?
- javascript - 使用 lodash 的带有数组的 groupBy 嵌套对象
- machine-learning - Flask 中的管道部署(python)
- jquery - JQuery 检查属性是否存在
- email - 是否有必要在具有可点击链接的电子邮件中包含纯文本 URL?
- sql - 在 Excel 工作表之间提取数据
- go - VS Code Go:$GOPATH/go.mod 存在但不应该
- python - 整数是不可变的还是可变的?
- python - 无论如何,我可以向使用 python 生成的 QR 码添加身份验证吗?
- python - 基于数据框不同列的分类 - Python