我正在尝试创建一个在后台播放音乐的广播应用程序,但我有一个问题与其他音乐应用程序,当我的应用程序和其他音乐应用程序同时播放音乐,为此,我试图使用audiofocus
解决这个问题,我的代码下面是工作的,但在一个方向
问题
>
(音乐应用程序,例如Google Play Music)播放音乐当我第一次运行我的应用程序时,Google Play Music停止播放音乐,我的应用程序播放音乐(作品)
我的应用程序在后台播放音乐,当我打开Google Play music时,我的应用程序停止播放音乐和Google Play music播放音乐(作品)
暂停播放Google Play music中的音乐以允许我的应用程序恢复/开始再次播放音乐(不工作)
我的代码:
private AudioManager mAudioManager;
boolean mAudioFocusGranted = false;
private AudioManager.OnAudioFocusChangeListener mOnAudioFocusChangeListener = new AudioManager.OnAudioFocusChangeListener() {
@Override
public void onAudioFocusChange(int focusChange) {
switch (focusChange) {
case AudioManager.AUDIOFOCUS_GAIN:
mediaPlayer.start();
MusicButton.setChecked(false);
break;
case AudioManager.AUDIOFOCUS_GAIN_TRANSIENT:
mediaPlayer.start();
MusicButton.setChecked(false);
break;
case AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK:
mediaPlayer.start();
MusicButton.setChecked(false);
break;
case AudioManager.AUDIOFOCUS_LOSS:
mediaPlayer.pause();
MusicButton.setChecked(true);
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
mediaPlayer.pause();
MusicButton.setChecked(true);
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
mediaPlayer.setVolume(0.2f,0.2f);
break;
}
}
};
SuppressLint({"CommitPrefEdits", "Assert"})
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MusicButton = findViewById(R.id.toggleButton);
mAudioManager = (AudioManager)getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
mAudioFocusGranted = true;
} else if (result == AudioManager.AUDIOFOCUS_REQUEST_FAILED) {
MusicButton.setChecked(true);
mediaPlayer.pause();
}
}
请有人帮我解决这个问题*对不起我的英语
这是我上面评论的一个总结,如果你想接受它作为回答的话:
暂停一个应用程序中的音乐/音频通常不会触发焦点改变,从而导致另一个应用程序恢复。应用程序必须调用abandonAudioFocus()或abandonAudioFocusRequest(audioFocusRequest),通常应在响应stop()而不是pause()时调用。
点击谷歌音乐中的暂停并不会触发你的焦点增益。你对此无能为力。如果用户暂停Google Music并想要恢复应用程序,他们将手动点击应用程序中的播放,或者通过媒体通知(如果仍然可见的话)。
如果你想要谷歌音乐在你暂停后恢复,你必须在暂停MediaPlayer后调用abandonAudioFocus来放弃焦点。虽然用户并不一定希望暂停按钮会有这样的行为。
ap.stopBackgroundAudio(CALLBACK) 停止播放音乐。 代码示例 <script src="https://gw.alipayobjects.com/as/g/h5-lib/alipayjsapi/3.1.1/alipayjsapi.inc.min.js"></script> <style>.output{ display:block; max-width: 100%;
我正在用Kotlin开发一个简单的游戏,使用LibGDX在后台播放音乐。在Android上,当用户玩游戏并按下HOME键,然后再次继续游戏时,我的暂停屏幕出现了——音乐继续播放。我想要的是,每当我的暂停屏幕显示时,音乐总是关闭。 当我开始一个新游戏时,每当我按下游戏中的“暂停”按钮,音乐就会按预期停止——然后当我点击游戏中的“继续”按钮时,音乐就会重新开始。这工作得很好。只有在按下HOME键时,我
ap.onBackgroundAudioStop(CALLBACK) 监听音乐停止事件。 代码示例 <script src="https://gw.alipayobjects.com/as/g/h5-lib/alipayjsapi/3.1.1/alipayjsapi.inc.min.js"></script> <style>.output{ display:block; max-width: 1
使用 Adobe Bridge 和 After Effects 使用 Adobe Bridge 可运行动画预设;运行跨产品工作流程自动化脚本;查看和管理文件和文件夹;通过将关键字、标签和等级分配给您的文件来组织这些文件;搜索文件和文件夹;以及查看、编辑和添加元数据。 要从 After Effects 打开 Adobe Bridge,请选择“文件”>“在 Bridge 中浏览”。 要在 Adobe
我正在做一个游戏,里面有背景音乐。我想添加一个启动和停止音乐的静音按钮,但我不知道怎么做。创建音乐的方法是: 我想做的是在按钮的动作处理程序中,我想添加一个静音按钮,如果用户愿意,它可以启动和停止音频。所以它应该是这样的:如果(e.getSource()==muteButton){//启动和停止音乐} 我该怎么做?谢谢你的帮助!
问题内容: 我正在研究android voip应用程序。我想确定是否还有其他应用程序正在使用麦克风。因此,我想防止在使用时从其他应用程序访问麦克风。 请任何人有想法,这将对我非常有帮助。 谢谢, 问题答案: 终于知道我们可以按以下方式检查麦克风的可用性: