![](/img/trans.png)
[英]How can I prioritize math operations in my own calculator written with swing library or add paranthese button to prioritize calculate in java or
[英]How can I fix my audio? (Prioritize)
当同时播放两个音频时...声音正在消除。 我该如何解决这种奇怪的现象?
我有一些代码,其中单击按钮时有音频, 并且每隔十秒钟就有一次音频(在后台服务中)。 我有以下代码在播放十秒间隔时停止按钮音频,并且工作正常:
public static void myPop(Context context){
AudioManager manager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
if(!manager.isMusicActive()) { //Only if there isn't any other audio playing
MediaPlayer pop = MediaPlayer.create(context, R.raw.pop);
pop.start();
}
else{
Log.v(TAG, "Audio is already playing");
}
}
这可以正常工作,并且可以停止播放(弹出)一个音频,让另一个音频播放(来自后台服务的一个)。 现在,当他们两个同时玩时,我遇到了问题。 例如,当我从后台服务开始播放音频时, 正好在同一时间点按按钮。 当它们同时播放时,音频会被切断
有什么办法可以让后台服务音频具有偏好? 莫名其妙地说: 如果两个音频片段在同一时间开始播放,我想让后台服务音频播放。
从视觉上考虑:
( https://upload.wikimedia.org/wikipedia/zh/4/49/Preference_example.jpg )
我想说的是,如果我可以在苹果和橙子之间进行选择,请选择苹果。 又如,如果我有两个音频播放器同时播放,请选择一个(苹果)。
谢谢你的帮助,
鲁奇尔
您可能有比赛条件。 在这三行中
1 if(!manager.isMusicActive()) {
2 MediaPlayer pop = MediaPlayer.create(context, R.raw.pop);
3 pop.start();
在第1行和第3行之间,另一个播放器有机会获得媒体播放器并开始播放,尤其是在第2行很慢的情况下。
我建议让一个媒体播放器供两个播放器访问(即在其他位置创建“ MediaPlayer pop”并共享),或者找到另一种方式来同步不同的播放器。 也许是在比赛开始前发出停止通知,而不是检查比赛状态。
您可以使用代码在其他播放器启动或暂停时播放或暂停音频。
AudioManager.OnAudioFocusChangeListener afChangeListener =
new AudioManager.OnAudioFocusChangeListener() {
public void onAudioFocusChange(int focusChange) {
if (focusChange == AUDIOFOCUS_LOSS_TRANSIENT) {
// Pause playback
} else if (focusChange == AudioManager.AUDIOFOCUS_GAIN) {
// Resume playback
} else if (focusChange == AudioManager.AUDIOFOCUS_LOSS) {
am.unregisterMediaButtonEventReceiver(RemoteControlReceiver);
am.abandonAudioFocus(afChangeListener);
// Stop playback
}
}
};
有关更多参考,请访问http://developer.android.com/training/managing-audio/audio-focus.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.