2017-06-10 8 views
0

Ich habe Ringtonemanager zuvor in Android Studio verwendet und es schien die Lautstärke von Musik, die in einer anderen App gespielt wurde, um die Warnung zu spielen, die ich versuchte zu spielen, dann einmal meine Warnung hatte zu senken vollendet die Hintergrundmusik würde dann wieder auf normale Lautstärke kommen (wie der Standardalarm/Benachrichtigung tun würde) Aber jetzt ein Jahr oder später später versuche ich dies wieder zu implementieren, aber meine Warnung ist nicht über die Musik in Google Play Music zu hören.Android Interrupt Media Player mit Klingelton-Manager

Ist dies eine Änderung, die jetzt zusätzliche Parameter erfordert, um wie gewohnt zu funktionieren?

Im mit:

Uri notification = 
RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); 
myRM = RingtoneManager.getRingtone(this.getContext(), notification); 
myRM.play(); 

Vielen Dank

Antwort

0

Handling Changes in Audio Output scheint, was Ihren Bedarf passt.

Kurz gesagt, Sie müssen Audiofokus anfordern, bevor Sie mit dem Abspielen beginnen.

... 
mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); 
mAudioManager.requestAudioFocus(null, mStreamType, AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK); 
mRingtone.play(); 

AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK

verwendet, um eine temporäre Anforderung von Audio-Fokus, um anzuzeigen, zu erwarten zuletzt kürzeste Zeit, und wo es für andere Audioanwendungen akzeptabel spielen zu halten, nachdem gesenkt hat ihre Ausgabe Ebene (auch als "Ducking" bezeichnet).

Denken Sie daran, Audio-Fokus zu lösen, wenn Finishing ..

if (mRingtone != null && mRingtone.isPlaying()) { 
    mRingtone.stop(); 
} 
mRingtone = null; 
if (mAudioManager != null) { 
    mAudioManager.abandonAudioFocus(null); 
} 
+0

Vielen Dank – Reeplayed