Ich habe mich gefragt, wie ich einen Benachrichtigungston abspielen kann, ohne ihn über den Medienstrom abzuspielen. Im Moment kann ich dies über den Media Player tun, ich möchte jedoch nicht, dass es als Mediendatei abgespielt wird, sondern als Benachrichtigung, Warnung oder Klingelton. Hier ist ein Beispiel dafür, wie mein Code gerade aussieht:
MediaPlayer mp = new MediaPlayer();
mp.reset();
mp.setDataSource(notificationsPath+ (String) apptSounds.getSelectedItem());
mp.prepare();
mp.start();
android
audio
notifications
ninjasense
quelle
quelle
MediaPlayer - Should have subtitle controller already set
. Was heißt das?Sie können dies jetzt tun, indem Sie den Sound beim Erstellen einer Benachrichtigung einbeziehen, anstatt den Sound separat aufzurufen.
quelle
Wenn Sie möchten, dass ein Standardbenachrichtigungston abgespielt wird, können Sie die Klassenmethode setDefaults (int) verwenden
NotificationCompat.Builder
:Ich glaube, das ist der einfachste Weg, um Ihre Aufgabe zu erfüllen.
quelle
Versuche dies:
quelle
Es ist eine Weile her seit Ihrer Frage, aber ... Haben Sie versucht, den Audio-Stream-Typ einzustellen?
Dies muss vor der Vorbereitung erfolgen.
quelle
Ich hatte so ziemlich die gleiche Frage. Nach einigen Recherchen denke ich, dass Sie, wenn Sie den "Benachrichtigungston" des Standardsystems abspielen möchten, so ziemlich eine Benachrichtigung anzeigen und anweisen müssen, den Standardton zu verwenden. Und es gibt etwas zu sagen für das Argument in einigen der anderen Antworten, dass Sie, wenn Sie einen Benachrichtigungston abspielen, auch eine Benachrichtigungsnachricht präsentieren sollten.
Wenn Sie jedoch die Benachrichtigungs-API ein wenig anpassen, können Sie sich dem nähern, was Sie möchten. Sie können eine leere Benachrichtigung anzeigen und diese nach einigen Sekunden automatisch entfernen. Ich denke, das wird für mich funktionieren. Vielleicht funktioniert es für Sie.
Ich habe eine Reihe von praktischen Methoden erstellt, mit
com.globalmentor.android.app.Notifications.java
denen Sie einen Benachrichtigungston wie folgt erstellen können:Die LED blinkt ebenfalls und wenn Sie die Berechtigung zum Vibrieren haben, tritt eine Vibration auf. Ja, ein Benachrichtigungssymbol wird in der Benachrichtigungsleiste angezeigt, verschwindet jedoch nach einigen Sekunden.
An diesem Punkt stellen Sie möglicherweise fest, dass die Benachrichtigung in der Benachrichtigungsleiste angezeigt werden kann, da die Benachrichtigung ohnehin nicht mehr angezeigt wird. Sie können das so machen:
Es gibt viele andere bequeme Methoden in dieser Klasse. Sie können die gesamte Bibliothek aus dem Subversion-Repository herunterladen und mit Maven erstellen. Dies hängt von der Globalmentor-Core-Bibliothek ab, die auch mit Maven erstellt und installiert werden kann.
quelle
Sie können Notification und NotificationManager verwenden , um die gewünschte Benachrichtigung anzuzeigen. Sie können dann den Sound, den Sie mit Ihrer Benachrichtigung abspielen möchten, anpassen.
quelle
Ich denke, das Konzept des "Benachrichtigungstons" ist für die Android-Benutzeroberfläche irgendwie falsch.
Das von Android erwartete Verhalten besteht darin, die Standardbenachrichtigung zu verwenden, um den Benutzer zu benachrichtigen. Wenn Sie einen Benachrichtigungston ohne das Statusleistensymbol abspielen, wird der Benutzer verwirrt ("Was war das für ein Ton? Hier gibt es kein Symbol, möglicherweise habe ich Hörprobleme?").
So stellen Sie beispielsweise den Ton für eine Benachrichtigung ein: Einstellen des Tons für die Benachrichtigung
quelle
quelle
Stellen Sie den Ton auf den Benachrichtigungskanal ein
quelle