mirror of
https://github.com/SimpleMobileTools/Simple-Voice-Recorder.git
synced 2025-06-05 21:59:31 +02:00
save real mp3
This commit is contained in:
@ -1,4 +1,4 @@
|
|||||||
package com.simplemobiletools.voicerecorder.helpers
|
package com.simplemobiletools.voicerecorder.recorder
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
@ -9,7 +9,7 @@ import com.naman14.androidlame.AndroidLame
|
|||||||
import com.naman14.androidlame.LameBuilder
|
import com.naman14.androidlame.LameBuilder
|
||||||
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
|
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
|
||||||
import com.simplemobiletools.voicerecorder.extensions.config
|
import com.simplemobiletools.voicerecorder.extensions.config
|
||||||
import com.simplemobiletools.voicerecorder.recorder.Recorder
|
import com.simplemobiletools.voicerecorder.helpers.SAMPLE_RATE
|
||||||
import java.io.*
|
import java.io.*
|
||||||
import java.util.concurrent.atomic.AtomicBoolean
|
import java.util.concurrent.atomic.AtomicBoolean
|
||||||
import java.util.concurrent.atomic.AtomicInteger
|
import java.util.concurrent.atomic.AtomicInteger
|
||||||
@ -48,8 +48,8 @@ class Mp3Recorder(val context: Context) : Recorder {
|
|||||||
override fun prepare() {}
|
override fun prepare() {}
|
||||||
|
|
||||||
override fun start() {
|
override fun start() {
|
||||||
val data = ShortArray(minBufferSize)
|
val rawData = ShortArray(minBufferSize)
|
||||||
mp3buffer = ByteArray((7200 + data.size * 2 * 1.25).toInt())
|
mp3buffer = ByteArray((7200 + rawData.size * 2 * 1.25).toInt())
|
||||||
|
|
||||||
val outputStream: FileOutputStream = try {
|
val outputStream: FileOutputStream = try {
|
||||||
if (fileDescriptor != null) {
|
if (fileDescriptor != null) {
|
||||||
@ -74,12 +74,12 @@ class Mp3Recorder(val context: Context) : Recorder {
|
|||||||
|
|
||||||
while (!isStopped.get()) {
|
while (!isStopped.get()) {
|
||||||
if (!isPaused.get()) {
|
if (!isPaused.get()) {
|
||||||
val count = audioRecord.read(data, 0, minBufferSize)
|
val count = audioRecord.read(rawData, 0, minBufferSize)
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
val bytesEncoded: Int = androidLame.encode(data, data, count, mp3buffer)
|
val bytesEncoded: Int = androidLame.encode(rawData, rawData, count, mp3buffer)
|
||||||
if (bytesEncoded > 0) {
|
if (bytesEncoded > 0) {
|
||||||
try {
|
try {
|
||||||
updateAmplitude(data)
|
updateAmplitude(rawData)
|
||||||
outputStream.write(mp3buffer, 0, bytesEncoded)
|
outputStream.write(mp3buffer, 0, bytesEncoded)
|
||||||
} catch (e: IOException) {
|
} catch (e: IOException) {
|
||||||
e.printStackTrace()
|
e.printStackTrace()
|
@ -24,6 +24,7 @@ import com.simplemobiletools.voicerecorder.extensions.updateWidgets
|
|||||||
import com.simplemobiletools.voicerecorder.helpers.*
|
import com.simplemobiletools.voicerecorder.helpers.*
|
||||||
import com.simplemobiletools.voicerecorder.models.Events
|
import com.simplemobiletools.voicerecorder.models.Events
|
||||||
import com.simplemobiletools.voicerecorder.recorder.MediaRecorderWrapper
|
import com.simplemobiletools.voicerecorder.recorder.MediaRecorderWrapper
|
||||||
|
import com.simplemobiletools.voicerecorder.recorder.Mp3Recorder
|
||||||
import com.simplemobiletools.voicerecorder.recorder.Recorder
|
import com.simplemobiletools.voicerecorder.recorder.Recorder
|
||||||
import org.greenrobot.eventbus.EventBus
|
import org.greenrobot.eventbus.EventBus
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@ -119,7 +120,6 @@ class RecorderService : Service() {
|
|||||||
durationTimer.scheduleAtFixedRate(getDurationUpdateTask(), 1000, 1000)
|
durationTimer.scheduleAtFixedRate(getDurationUpdateTask(), 1000, 1000)
|
||||||
|
|
||||||
startAmplitudeUpdates()
|
startAmplitudeUpdates()
|
||||||
|
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
showErrorToast(e)
|
showErrorToast(e)
|
||||||
stopRecording()
|
stopRecording()
|
||||||
|
Reference in New Issue
Block a user