多くのゲームアプリの場合、BGMやSE、ボイスが鳴るように作られている
そこで、もし自アプリ起動前にミュージックプレイヤーアプリなどで音楽を聴いていた場合にはプレイヤーの再生を止めたかったり、自アプリのBGMを止めたいといったことがある
それを実現するためには、別アプリで音楽が再生されているか知る必要があるので、そのやり方メモ
1. 他アプリで音楽が再生中かのチェック方法
AudioManager
を利用することで再生中かのチェックができる
ただし、外部アプリでの再生のみをチェックできるわけではなく、チェックする前に自アプリで音楽を再生していた場合もチェックに引っかかるので注意
Java
AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
if (audioManager.isMusicActive()) {
// 再生中!!
}
Kotlin
val audioManager = context.getSystemService(Context.AUDIO_SERVICE) as AudioManager
if (audioManager.isMusicActive) {
// 再生中!!
}
2. 自アプリからプレイヤーを操作したい
もしAndroid標準のミュージックプレイヤーで再生されていれば、自アプリからプレイヤーの操作(再生、停止、次へ、前へ)ができる
Java
Intent intent = new Intent("com.android.music.musicservicecommand");
// play: 再生, pause: 停止, next: 次へ, preview: 前へ
intent.putExtra("command", "pause");
context.sendBroadcast(intent);
Kotlin
val intent = Intent("com.android.music.musicservicecommand")
// play: 再生, pause: 停止, next: 次へ, preview: 前へ
intent.putExtra("command", "pause")
context.sendBroadcast(intent)