15 Stimmen

Wie kann man den Standard-TICK-Ton abspielen?

Ich möchte den Standard-Tick-Sound von Android OS (z. B. den Sound, den man hört, wenn man lange auf die Home-Taste klickt und die vorherige App zum Starten auswählt) mit meinem Tastenklick verbinden. Ich weiß, wie man Sounds über MediaPlayer abspielen, aber ich weiß nicht, wo für diese Standard-Tick-Sound zu suchen. Er muss in einigen Standardressourcen enthalten sein, aber ich konnte ihn nicht finden.

MediaPlayer mp = MediaPlayer.create(getBaseContext(), sound);  
mp.setLooping(false);
mp.start();

Kann jemand helfen?

PS. dieser Sound wird innerhalb der onClick-Methode aktiviert.
PPS. Ich weiß, ich kann Benutzer /raw dir, aber ich glaube nicht, dass es eine Notwendigkeit für sie ist. Nicht zu sagen, es ist cooler, diese Zecke Sound für Benutzer Telefon vorbereitet spielen.

69voto

Roberto Tyley Punkte 22905

Sie können den standardmäßigen Android-"Tick"-Sound abspielen, indem Sie die view.playSoundEffect() Methode in jeder Ansicht - überraschenderweise können alle Ansichten eine Auswahl von "System"-Sounds abspielen:

view.playSoundEffect(SoundEffectConstants.CLICK);

und vergessen Sie nicht, dies zu Ihrer Ansicht hinzuzufügen:

android:soundEffectsEnabled="true"

Dies ist wahrscheinlich die einfachste Antwort auf Ihr Problem :)

11voto

aaronvargas Punkte 10019

Wenn Sie die Lautstärke des Tons steuern möchten, verwenden Sie die AudioManager Systemdienst. Außerdem kann dies von einem Dienst aus verwendet werden, wenn Sie keine Ansicht zur Hand haben.

// get the AudioManager once onCreate or similar
audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

...
// Play a System Sound
audioManager.playSoundEffect(SoundEffectConstants.CLICK);

// OR at 50% Volume
audioManager.playSoundEffect(SoundEffectConstants.CLICK, 0.5F);

Wenn Sie mit Google GLASS arbeiten, können Sie die com.google.android.glass.media.Sounds Konstanten

audioManager.playSoundEffect(Sounds.TAP);

Zu den Sounds gehören

UNZULÄSSIG, FEHLER, ERFOLG, TIPPEN, AUSGEWÄHLT, ABGEWIESEN

7voto

Pankaj Lilan Punkte 3896

Sie können Tick, Beep oder jede Art von eingebautem Ton verwenden, indem Sie Klangerzeuger

ToneGenerator toneG = new ToneGenerator(AudioManager.STREAM_ALARM, 100);
toneG.startTone(ToneGenerator.TONE_CDMA_ALERT_CALL_GUARD, 200);

6voto

Bart Burg Punkte 4598

Die Antwort von Roberto Tyley ist richtig.

Sie können einen Sound aus jeder Ansicht abspielen, indem Sie ihn einfach auf diese Weise aufrufen:

Button01.setOnClickListener(new View.OnClickListener() 
        {
            public void onClick(View v) 
            {
                 v.playSoundEffect(SoundEffectConstants.CLICK);   
            }
        });

Beachten Sie jedoch, dass der Ton nicht abgespielt wird, wenn die Berührungsgeräusche standardmäßig ausgeschaltet sind. Dies wird in den allgemeinen Toneinstellungen des Geräts festgelegt (Einstellungen-->Ton-->Hörbar oder unter neueren Betriebssystemen: Optionen > Ton > Touch).

Außerdem wird bei dieser Einstellung bei den meisten Klickereignissen ohnehin ein Klickgeräusch ausgelöst!

1voto

bluefalcon Punkte 4207

HINWEIS: Diese Antwort ist ziemlich alt. Sehen Sie sich die Antwort von Roberto Tyley unten an.

Ich denke, der Sound, den Sie suchen, ist und bleibt in - /system/media/audio/ui/KeypressStandard.ogg

Ich denke, Sie können diesen Weg für die SetDataSource API des Mediaplayers. Ich bin mir aber nicht sicher, ob er auf allen Android-Handys denselben Namen hat.

Vielleicht gibt es eine bessere Möglichkeit, nach Standard-Klicktönen zu suchen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X