LoginSignup
20
18

More than 5 years have passed since last update.

【Android】他アプリで音楽が再生されているか知りたい 自アプリからプレイヤーを操作したい

Posted at

 多くのゲームアプリの場合、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)
20
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
18