미디어 스트림을 통해 알림 사운드를 재생하지 않고 어떻게 알림 사운드를 재생할 수 있는지 궁금했습니다. 지금은 미디어 플레이어를 통해이 작업을 수행 할 수 있지만 미디어 파일로 재생하고 싶지 않고 알림이나 경고 또는 벨소리로 재생하고 싶습니다. 여기 내 코드가 어떻게 생겼는지에 대한 예가 있습니다.
MediaPlayer mp = new MediaPlayer();
mp.reset();
mp.setDataSource(notificationsPath+ (String) apptSounds.getSelectedItem());
mp.prepare();
mp.start();
답변
누군가 여전히 이것에 대한 해결책을 찾고 있다면 Android에서 벨소리 / 알람 소리를 재생하는 방법에 대한 답변을 찾았습니다.
try {
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification);
r.play();
} catch (Exception e) {
e.printStackTrace();
}
TYPE_NOTIFICATION을 TYPE_ALARM (으)로 변경할 수 있지만 사용자가 버튼이나 무언가를 클릭 할 때 벨소리 r을 추적하여 재생을 중지하고 싶을 것입니다.
답변
소리를 별도로 호출하지 않고 알림을 작성할 때 소리를 포함 시켜서이를 수행 할 수 있습니다.
//Define Notification Manager
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
//Define sound URI
Uri soundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(getApplicationContext())
.setSmallIcon(icon)
.setContentTitle(title)
.setContentText(message)
.setSound(soundUri); //This sets the sound to play
//Display notification
notificationManager.notify(0, mBuilder.build());
답변
기본 알림 사운드를 재생하려면 클래스의 setDefaults (int) 메서드를 사용할 수 있습니다 NotificationCompat.Builder
.
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_notification)
.setContentTitle(getString(R.string.app_name))
.setContentText(someText)
.setDefaults(Notification.DEFAULT_SOUND)
.setAutoCancel(true);
나는 그것이 당신의 작업을 수행하는 가장 쉬운 방법이라고 생각합니다.
답변
이 시도:
public void ringtone(){
try {
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification);
r.play();
} catch (Exception e) {
e.printStackTrace();
}
}
답변
질문 이후 오랜 시간이 지났지 만 … 오디오 스트림 유형을 설정해 보셨습니까?
mp.setAudioStreamType(AudioManager.STREAM_NOTIFICATION);
준비하기 전에 수행해야합니다.
답변
나는 거의 같은 질문을했다. 몇 가지 연구를 한 후에 기본 시스템 “알림 사운드”를 재생하려면 알림을 표시하고 기본 사운드를 사용하도록 지시해야한다고 생각합니다. 알림 음을 재생하는 경우 알림 메시지도 표시해야한다는 다른 답변 중 일부에서 논쟁 할 내용이 있습니다.
그러나 알림 API를 약간 조정하면 원하는 것에 가까이 갈 수 있습니다. 빈 알림을 표시 한 후 몇 초 후에 자동으로 제거 할 수 있습니다. 나는 이것이 나에게 효과가 있다고 생각한다. 어쩌면 그것은 당신을 위해 일할 것입니다.
다음 com.globalmentor.android.app.Notifications.java
과 같은 알림 소리를 만들 수있는 편리한 방법을 만들었습니다 .
Notifications.notify(this);
또한 LED가 깜박이며 진동 권한이 있으면 진동이 발생합니다. 예, 알림 아이콘이 알림 표시 줄에 나타나지만 몇 초 후에 사라집니다.
이 시점에서 알림이 사라지기 때문에 알림 표시 줄에 스크롤 티커 메시지가있을 수도 있습니다. 당신은 이렇게 할 수 있습니다 :
Notifications.notify(this, 5000, "This text will go away after five seconds.");
이 클래스에는 다른 많은 편리한 방법이 있습니다. Subversion 저장소에서 전체 라이브러리를 다운로드하여 Maven으로 빌드 할 수 있습니다. 그것은 글로벌 멘토 어-코어 라이브러리에 의존하며, Maven으로 빌드하고 설치할 수도 있습니다.
답변
Notification 및 NotificationManager 를 사용 하여 원하는 알림 을 표시 할 수 있습니다 . 그런 다음 알림으로 재생하려는 사운드를 사용자 정의 할 수 있습니다.