【发布时间】:2021-08-13 14:01:52
【问题描述】:
我有三个问题。 首先:我必须停止向服务器录制音频和流数据。 第二:我想保存文件并将整个文件发送到服务器。 第三:我必须在接收器中播放这些块。
向服务器发送音频:
btn_send.setOnTouchListener(object : View.OnTouchListener {
override fun onTouch(v: View?, event: MotionEvent?): Boolean {
when (event?.action) {
MotionEvent.ACTION_DOWN -> {
Log.i("tou7ch", "apertou")
val buffer = ByteArray(minBufSize)
val chunks = buffer.toByteString()
audiorecord!!.startRecording()
val number = audiorecord!!.read(buffer, 0, minBufSize)
for (i in 0 until number) {
webSocket.send(chunks)
}
}
MotionEvent.ACTION_UP -> {
Log.i("tou7ch", "soltou")
audiorecord?.stop();
}
}
return v?.onTouchEvent(event) ?: true
}
})
发送时效果很好,但我不知道如何停止发送。当从按钮上移开手指时,我有一个Log.i("tou7ch", "soltou"),它被完美地调用了。
如果我这样放一段时间:
while (true) {
val number = audiorecord!!.read(buffer, 0, minBufSize)
for (i in 0 until number) {
webSocket.send(chunks)
}
}
或任何其他要验证的变量,应用程序会永久停止运行。如何停止将其发送到服务器?如何停止录制?如何在接收器中播放这些块?如何将整个文件保存在 .wav 中?
感谢开发者!
【问题讨论】:
-
你应该为此实现协程!
-
谢谢!我去看看!我真的很高兴你的生活。祝福!
标签: android android-studio kotlin websocket