如何阻止其他应用程序从我的当前活动播放音乐? [英] How to stop other apps playing music from my current activity?

查看:249
本文介绍了如何阻止其他应用程序从我的当前活动播放音乐?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的应用程序,我试图让一个按钮,点击它时,停止正在播放音乐的所有其他应用程序。我想要的是类似,如果我通过一个音乐播放器播放音乐,如果我试图通过第二个音乐播放器播放一些其他的音乐,目前的音乐播放器停止,然后第二个开始。我们如何阻止其他应用程序从当前的活动/应用程序播放音乐?

解决方案

  AudioManager上午=(AudioManager)getSystemService(Context.AUDIO_SERVICE);

//请求音频焦点回放
INT结果= am.requestAudioFocus(focusChangeListener,
//使用音乐流。
AudioManager.STREAM_MUSIC,
//请求持久焦点。
AudioManager.AUDIOFOCUS_GAIN);


如果(结果== AudioManager.AUDIOFOCUS_REQUEST_GRANTED){
//其他应用程序已经停止正在播放的歌曲,你还是你现在能做的ü的东西。
}
 

音频当前分配依次为每次请求它的应用程序。这意味着如果另一 应用程序请求音频焦点,你的申请将失去它。你将损失的通知作业人员编 通过在音频焦点变化监听的onAudioFocusChange处理音频焦点您 注册请求音频焦点时,

 私人OnAudioFocusChangeListener focusChangeListener =
          新OnAudioFocusChangeListener(){
                  公共无效onAudioFocusChange(INT focusChange){
                             AudioManager上午=(AudioManager)getSystemService(Context.AUDIO_SERVICE);
                    开关(focusChange){

                           案例(AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK):
                           //降低音量,同时回避。
                           mediaPlayer.setVolume(0.2F,0.2F);
                           打破;
                           案例(AudioManager.AUDIOFOCUS_LOSS_TRANSIENT):
                           暂停();
                           打破;

                           案例(AudioManager.AUDIOFOCUS_LOSS):
                           停止();
                           组件名组件=新的组件名(AudioPlayerActivity.this,MediaControlReceiver.class);
                           am.unregisterMediaButtonEventReceiver(组分);
                           打破;

                           案例(AudioManager.AUDIOFOCUS_GAIN):
                           //返回体积正常,如果继续暂停。
                           mediaPlayer.setVolume(1F,1F);
                           mediaPlayer.start();
                           打破;
                           默认值:打破;
}
}
};
 

In my app I am trying to make a button which when clicked stops all other apps that are playing music. What I want is similar to that if I am playing music through one music player and if I try playing some other music through a second music player, the current music player stops and then the second one starts. How do we stop other apps playing music from current activity/app?

解决方案

AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

// Request audio focus for playback
int result = am.requestAudioFocus(focusChangeListener,
// Use the music stream.
AudioManager.STREAM_MUSIC,
// Request permanent focus.
AudioManager.AUDIOFOCUS_GAIN);


if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
// other app had stopped playing song now , so u can do u stuff now .
}

Audio focus is assigned in turn to each application that requests it. This means that if another application requests audio focus, your application will lose it. You will be notifi ed of the loss of audio focus through the onAudioFocusChange handler of the Audio Focus Change Listener you registered when requesting the audio focus

      private OnAudioFocusChangeListener focusChangeListener =
          new OnAudioFocusChangeListener() {
                  public void onAudioFocusChange(int focusChange) {
                             AudioManager am =(AudioManager)getSystemService(Context.AUDIO_SERVICE);
                    switch (focusChange) {

                           case (AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK) :
                           // Lower the volume while ducking.
                           mediaPlayer.setVolume(0.2f, 0.2f);
                           break;
                           case (AudioManager.AUDIOFOCUS_LOSS_TRANSIENT) :
                           pause();
                           break;

                           case (AudioManager.AUDIOFOCUS_LOSS) :
                           stop();
                           ComponentName component =new ComponentName(AudioPlayerActivity.this,MediaControlReceiver.class);
                           am.unregisterMediaButtonEventReceiver(component);
                           break;

                           case (AudioManager.AUDIOFOCUS_GAIN) :
                           // Return the volume to normal and resume if paused.
                           mediaPlayer.setVolume(1f, 1f);
                           mediaPlayer.start();
                           break;
                           default: break;
}
}
};

这篇关于如何阻止其他应用程序从我的当前活动播放音乐?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆