Android 安卓媒体播放器声音不能与长期警报一起工作
我用alarm manager制作了一个闹钟应用程序。如果我把闹钟设置在一到两个小时以内,它就会工作。但如果我设置的时间更长,报警管理器就会工作,我的布局就会出现,但声音不会播放。我正在使用唤醒锁,但它仍然没有播放。在那个问题之后,我使用SharedReferences来保存我的音乐文件的路径,但不再工作。这是我的代码,我希望我能解释我的问题,对不起,我的英语不好 文件选择器Android 安卓媒体播放器声音不能与长期警报一起工作,android,android-mediaplayer,alarmmanager,android-alarms,android-wake-lock,Android,Android Mediaplayer,Alarmmanager,Android Alarms,Android Wake Lock,我用alarm manager制作了一个闹钟应用程序。如果我把闹钟设置在一到两个小时以内,它就会工作。但如果我设置的时间更长,报警管理器就会工作,我的布局就会出现,但声音不会播放。我正在使用唤醒锁,但它仍然没有播放。在那个问题之后,我使用SharedReferences来保存我的音乐文件的路径,但不再工作。这是我的代码,我希望我能解释我的问题,对不起,我的英语不好 文件选择器 @Override protected void onActivityResult(int requestCode, i
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case REQUEST_CODE:
// If the file selection was successful
if (resultCode == RESULT_OK) {
if (data != null) {
// Get the URI of the selected file
final Uri uri = data.getData();
Log.i(TAG, "Uri = " + uri.toString());
try {
// Get the file path from the URI
path = FileUtils.getPath(this, uri);
Toast.makeText(MainActivity.this,
"Dosya seçildi: " + path, Toast.LENGTH_LONG).show();
} catch (Exception e) {
Log.e("DosyaSeçici", "Dosya seçerken bir hata oluştu", e);
}
}
}
break;
}
if(data == null){
Toast.makeText(MainActivity.this,
"Dosya seçilmedi alarm sesi varsayılan olacak", Toast.LENGTH_LONG).show();
}
else{
super.onActivityResult(requestCode, resultCode, data);
mp = MediaPlayer.create(this, Uri.parse(path));
mp.setLooping(true);
editor.putString("yol", path);
editor.commit();
}
}
在我的generateNotification函数中,当出现报警时间时调用此函数
try{
MainActivity.v.vibrate(1);
mp = new MediaPlayer();
if(MainActivity.path != null)
mp.setDataSource(MainActivity.path);
else
mp.setDataSource(context, defaultRingtoneUri);
mp.prepare();
mp.start();
mp.setOnCompletionListener(new OnCompletionListener()
{
@Override
public void onCompletion(MediaPlayer arg0)
{
mp.start();
}});
}
我将'path=preferences.getStringyol,null'放在onCreate,MainActivity中
还有我的唤醒锁密码
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
WakeLock wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK
| PowerManager.ACQUIRE_CAUSES_WAKEUP
| PowerManager.ON_AFTER_RELEASE, "MyWakeLock");
wakeLock.acquire();
许可
<uses-permission android:name="android.permission.WAKE_LOCK" />
我试图用每一个细节来解释我的问题。它在短期内运行良好。
已经谢谢你了 我以前没有编写报警应用程序,但我认为你应该看看谷歌的文档。也许还有其他一些设置警报的方法-我想可以使用系统服务解决-如果有人知道得更好,而我错了,请让我知道 谢谢你的回答,但我已经在使用alarmManager了,它可以工作了,但我也在使用媒体播放器播放声音,这就是问题所在。媒体播放器可能没有使用服务。除了通知之外,alarmManager中没有关于声音的内容。我希望有。