|
@@ -1,23 +1,11 @@
|
|
|
package com.cooleshow.musictuner;
|
|
|
|
|
|
-import androidx.appcompat.app.AppCompatActivity;
|
|
|
-import androidx.viewbinding.ViewBinding;
|
|
|
-import be.tarsos.dsp.AudioDispatcher;
|
|
|
-import be.tarsos.dsp.AudioEvent;
|
|
|
-import be.tarsos.dsp.AudioProcessor;
|
|
|
-import be.tarsos.dsp.io.android.AudioDispatcherFactory;
|
|
|
-import be.tarsos.dsp.pitch.PitchDetectionHandler;
|
|
|
-import be.tarsos.dsp.pitch.PitchDetectionResult;
|
|
|
-import be.tarsos.dsp.pitch.PitchProcessor;
|
|
|
-
|
|
|
import android.Manifest;
|
|
|
import android.content.Context;
|
|
|
import android.content.DialogInterface;
|
|
|
import android.content.Intent;
|
|
|
import android.graphics.Color;
|
|
|
import android.os.Bundle;
|
|
|
-import android.util.Log;
|
|
|
-import android.view.LayoutInflater;
|
|
|
import android.view.View;
|
|
|
import android.widget.TextView;
|
|
|
|
|
@@ -269,22 +257,18 @@ public class MusicTunerActivity extends BaseActivity<ActivityMusicTunerLayoutBin
|
|
|
if (isOnPlayMusicFork) {
|
|
|
//播放中就暂停
|
|
|
pauseMusicFork();
|
|
|
- viewBinding.ivPlayFork.setImageResource(R.drawable.icon_music_tuner_normal);
|
|
|
} else {
|
|
|
//未播放触发播放
|
|
|
playMusicFork();
|
|
|
- viewBinding.ivPlayFork.setImageResource(R.drawable.icon_music_tuner_select);
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (id == R.id.iv_play_metronome) {
|
|
|
if (PlayBeanManager.getInstance().isPlaying()) {
|
|
|
- PlayBeanManager.getInstance().pausePlay();
|
|
|
- viewBinding.ivPlayMetronome.setImageResource(R.drawable.icon_play_metronome_bt);
|
|
|
+ pausePlayBeat();
|
|
|
} else {
|
|
|
- PlayBeanManager.getInstance().play();
|
|
|
- viewBinding.ivPlayMetronome.setImageResource(R.drawable.icon_pause_metronome_bt);
|
|
|
+ startPlayBeat();
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
@@ -307,6 +291,25 @@ public class MusicTunerActivity extends BaseActivity<ActivityMusicTunerLayoutBin
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void pausePlayBeat() {
|
|
|
+ if (PlayBeanManager.getInstance().isPlaying()) {
|
|
|
+ PlayBeanManager.getInstance().pausePlay();
|
|
|
+ refreshPlayBeatStatus();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void startPlayBeat() {
|
|
|
+ PlayBeanManager.getInstance().play();
|
|
|
+ refreshPlayBeatStatus();
|
|
|
+ //暂停音叉
|
|
|
+ pauseMusicFork();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void refreshPlayBeatStatus() {
|
|
|
+ boolean playing = PlayBeanManager.getInstance().isPlaying();
|
|
|
+ viewBinding.ivPlayMetronome.setImageResource(playing ? R.drawable.icon_pause_metronome_bt : R.drawable.icon_play_metronome_bt);
|
|
|
+ }
|
|
|
+
|
|
|
private void showRhythmDialog() {
|
|
|
if (mRhythmTypeDialog == null) {
|
|
|
mRhythmTypeDialog = new MoreRhythmTypeDialog(this);
|
|
@@ -342,6 +345,8 @@ public class MusicTunerActivity extends BaseActivity<ActivityMusicTunerLayoutBin
|
|
|
if (!mTuningForkDialog.isShowing()) {
|
|
|
mTuningForkDialog.show();
|
|
|
switchMusicForkImg(true);
|
|
|
+ //暂停节拍器
|
|
|
+ pausePlayBeat();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -361,11 +366,19 @@ public class MusicTunerActivity extends BaseActivity<ActivityMusicTunerLayoutBin
|
|
|
}
|
|
|
AudioTrackManager.getInstance().play(currentMusicMenu);
|
|
|
isOnPlayMusicFork = true;
|
|
|
+ refreshBt();
|
|
|
+ //暂停节拍器
|
|
|
+ pausePlayBeat();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void refreshBt() {
|
|
|
+ viewBinding.ivPlayFork.setImageResource(isOnPlayMusicFork ? R.drawable.icon_music_tuner_select : R.drawable.icon_music_tuner_normal);
|
|
|
}
|
|
|
|
|
|
private void pauseMusicFork() {
|
|
|
AudioTrackManager.getInstance().stop();
|
|
|
isOnPlayMusicFork = false;
|
|
|
+ refreshBt();
|
|
|
}
|
|
|
|
|
|
private void updateCurrentHzStandardText() {
|
|
@@ -431,20 +444,16 @@ public class MusicTunerActivity extends BaseActivity<ActivityMusicTunerLayoutBin
|
|
|
PlayBeanManager.getInstance().setBeat(metronomeType, QuarterNoteRhythmType.METRONOME_1_TYPE);
|
|
|
updateBeatInfo();
|
|
|
}).setTitleText("拍号").setTitleColor(Color.BLACK).setLayoutRes(com.cooleshow.metronome.R.layout.pickerview_beat_symbol_layout, v -> {
|
|
|
- //自定义布局中的控件初始化及事件处理
|
|
|
- final TextView tvSubmit = (TextView) v.findViewById(com.cooleshow.metronome.R.id.tv_finish);
|
|
|
- TextView ivCancel = (TextView) v.findViewById(com.cooleshow.metronome.R.id.tv_cancel);
|
|
|
- tvSubmit.setOnClickListener(v12 -> {
|
|
|
- pvOptions.returnData();
|
|
|
- pvOptions.dismiss();
|
|
|
- });
|
|
|
- ivCancel.setOnClickListener(v1 -> pvOptions.dismiss());
|
|
|
+ //自定义布局中的控件初始化及事件处理
|
|
|
+ final TextView tvSubmit = (TextView) v.findViewById(com.cooleshow.metronome.R.id.tv_finish);
|
|
|
+ TextView ivCancel = (TextView) v.findViewById(com.cooleshow.metronome.R.id.tv_cancel);
|
|
|
+ tvSubmit.setOnClickListener(v12 -> {
|
|
|
+ pvOptions.returnData();
|
|
|
+ pvOptions.dismiss();
|
|
|
+ });
|
|
|
+ ivCancel.setOnClickListener(v1 -> pvOptions.dismiss());
|
|
|
|
|
|
- })
|
|
|
- .setDividerColor(Color.TRANSPARENT)
|
|
|
- .setBgColor(Color.TRANSPARENT)
|
|
|
- .setLineSpacingMultiplier(2.7f)
|
|
|
- .isDialog(false).isDialog(false).build();
|
|
|
+ }).isDialog(false).build();
|
|
|
pvOptions.setPicker(allBeatTypeList);
|
|
|
if (currentSelectPosition < allBeatTypeList.size()) {
|
|
|
pvOptions.setSelectOptions(currentSelectPosition);
|
|
@@ -473,6 +482,14 @@ public class MusicTunerActivity extends BaseActivity<ActivityMusicTunerLayoutBin
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ protected void onStop() {
|
|
|
+ super.onStop();
|
|
|
+ if (isOnPlayMusicFork) {
|
|
|
+ pauseMusicFork();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
|
|
public void loadEventBus(LoginStatusEvent event) {
|
|
|
if (event != null && event.eventCode == LoginStatusConstants.LOGIN_OUT) {
|