diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a9278df..bffad41 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -54,7 +54,8 @@
-
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/frank/ffmpeg/activity/EqualizerActivity.kt b/app/src/main/java/com/frank/ffmpeg/activity/EqualizerActivity.kt
new file mode 100644
index 0000000..2aa2bc4
--- /dev/null
+++ b/app/src/main/java/com/frank/ffmpeg/activity/EqualizerActivity.kt
@@ -0,0 +1,100 @@
+package com.frank.ffmpeg.activity
+
+import android.os.Bundle
+import android.os.Environment
+import android.util.Pair
+import android.view.View
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.frank.ffmpeg.AudioPlayer
+import com.frank.ffmpeg.R
+import com.frank.ffmpeg.adapter.EqualizerAdapter
+import com.frank.ffmpeg.listener.OnSeeBarListener
+import java.util.ArrayList
+
+class EqualizerActivity : BaseActivity(), OnSeeBarListener {
+
+ // unit: Hz gain:0-20
+ /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ | 1b | 2b | 3b | 4b | 5b | 6b | 7b | 8b | 9b |
+ | 65 | 92 | 131 | 185 | 262 | 370 | 523 | 740 | 1047 |
+ |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ | 10b | 11b | 12b | 13b | 14b | 15b | 16b | 17b | 18b |
+ | 1480 | 2093 | 2960 | 4186 | 5920 | 8372 | 11840 | 16744 | 20000 |
+ |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
+ private val bandsList = arrayListOf(
+ 65, 92, 131, 185, 262, 370,
+ 523, 740, 1047, 1480, 2093, 2960,
+ 4180, 5920, 8372, 11840, 16744, 20000)
+ private val minEQLevel = 0
+ private var filterThread: Thread? = null
+ private var mAudioPlayer: AudioPlayer? = null
+ private var equalizerAdapter: EqualizerAdapter? = null
+ private var audioPath = Environment.getExternalStorageDirectory().path + "/tiger.mp3"
+
+ override val layoutId: Int
+ get() = R.layout.activity_equalizer
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ initView()
+ setupEqualizer()
+ doEqualize()
+ }
+
+ private fun initView() {
+ val equalizerView = findViewById(R.id.list_equalizer)
+ val layoutManager = LinearLayoutManager(this)
+ layoutManager.orientation = RecyclerView.VERTICAL
+ equalizerView.layoutManager = layoutManager
+ equalizerAdapter = EqualizerAdapter(this, this)
+ equalizerView.adapter = equalizerAdapter
+ }
+
+ private fun setupEqualizer() {
+ val equalizerList = ArrayList>()
+ val maxEQLevel = 20
+ for (i in 0 until bandsList.size) {
+ val centerFreq = bandsList[i].toString() + " Hz"
+ val pair = Pair.create(centerFreq, 0)
+ equalizerList.add(pair)
+ }
+ if (equalizerAdapter != null) {
+ equalizerAdapter!!.setMaxProgress(maxEQLevel - minEQLevel)
+ equalizerAdapter!!.setEqualizerList(equalizerList)
+ }
+ mAudioPlayer = AudioPlayer()
+ }
+
+ private fun doEqualize() {
+// val bandList = arrayListOf()
+// bandList.add("6b=5")
+// bandList.add("8b=4")
+// bandList.add("10b=3")
+// bandList.add("12b=2")
+// bandList.add("14b=1")
+// bandList.add("16b=0")
+ val filter = "superequalizer=6b=4:8b=5:10b=5"
+ if (filterThread == null) {
+ filterThread = Thread(Runnable {
+ mAudioPlayer!!.play(audioPath, filter)
+ })
+ filterThread!!.start()
+ } else {
+// mAudioPlayer!!.again(position)
+ }
+ }
+
+ override fun onProgress(index: Int, progress: Int) {
+ doEqualize()
+ }
+
+ override fun onViewClick(view: View) {
+
+ }
+
+ override fun onSelectedFile(filePath: String) {
+ audioPath = filePath
+ }
+}
diff --git a/app/src/main/res/layout/activity_equalizer.xml b/app/src/main/res/layout/activity_equalizer.xml
new file mode 100644
index 0000000..57f5c3b
--- /dev/null
+++ b/app/src/main/res/layout/activity_equalizer.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file