parent
c509dba761
commit
577a9e0b53
@ -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<RecyclerView>(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<Pair<*, *>>() |
||||||
|
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<String>() |
||||||
|
// 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 |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,22 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="match_parent" |
||||||
|
android:layout_marginStart="16dp" |
||||||
|
android:orientation="vertical"> |
||||||
|
|
||||||
|
<TextView |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:layout_marginTop="10dp" |
||||||
|
android:text="@string/audio_equalizer"> |
||||||
|
</TextView> |
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView |
||||||
|
android:id="@+id/list_equalizer" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="wrap_content"> |
||||||
|
</androidx.recyclerview.widget.RecyclerView> |
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout> |
Loading…
Reference in new issue