2017-05-20 18 views
2

私はAndroidの目覚まし時計のカスタムタイプを構築しようとしています。ユーザーが使用したいアラーム音を選択できるように設定ページを設定しました。彼らがそれを選択すると、SharedPreferencesに十分に簡単に配置されます。Androidのアラーム音は、アラーム音量設定を使用していますか?

私が抱えている問題は、RingtoneManager.TYPE_ALARMを使用している間に、選択したアラームを再生する方法です。そのため、ボリュームはシステムの通知音ではなくシステムのアラーム音に基づいています。

私はアラームボリュームを使用するために複数の方法を試しましたが、何もそのトリックをやっていないようです。

1.

Uri currentRingtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); 
currentRingtone = RingtoneManager.getRingtone(context, currentRingtoneUri); 
currentRingtone.play(); 

2.

SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this); 
String syncConnPref = sharedPref.getString("alarm_new_alarm_sound", null); 

if (syncConnPref != null) { 
    RingtoneManager.getRingtone(this, Uri.parse(syncConnPref)).play(); 
} 

私は、実際のアラーム音量のサウンドを再生する任意の他の直接的な方法を見つけるように見えることはできません。オンラインのすべては着信音だけを見ています。

アラーム音量の使用に関する洞察があれば、本当に感謝します。

答えて

1

多少古いスレッドですが、これは将来誰かを助けるでしょう。
私は現在、目覚まし時計の上に自分自身を働いていると私はこれをやっている:

int audioFile = prefs.getInt("audioFile", R.raw.yourFile); 
MediaPlayer mp = new MediaPlayer(); 

try { 
    mp.reset(); 

    mp.setDataSource(PlayerActivity.this,  
    Uri.parse("android.resource://your.package.here/" + audioFile)); 

    mp.setAudioStreamType(STREAM_ALARM); 
    mp.setLooping(true); 
    mp.prepare(); 
    mp.start(); 
} 

catch (...) { 
    ... 
} 

それは私のために正常に動作しています。

関連する問題