Skip to content

Commit 3715325

Browse files
committed
AudioRecordUtil对讲时初始化
1 parent 1c5a4b8 commit 3715325

File tree

3 files changed

+47
-41
lines changed

3 files changed

+47
-41
lines changed

sdkdemo/src/main/java/com/tencent/iot/explorer/link/demo/video/preview/VideoPreviewActivity.kt

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ class VideoPreviewActivity : VideoPreviewBaseActivity<ActivityVideoPreviewBindin
7575
@Volatile
7676
var audioAble = true
7777
var filePath: String? = null
78-
lateinit var audioRecordUtil: AudioRecordUtil
78+
var audioRecordUtil: AudioRecordUtil? = null
7979
var permissions = arrayOf(Manifest.permission.RECORD_AUDIO)
8080

8181
@Volatile
@@ -132,18 +132,6 @@ class VideoPreviewActivity : VideoPreviewBaseActivity<ActivityVideoPreviewBindin
132132
tvEventStatus.visibility = View.VISIBLE
133133
tvEventStatus.setText(R.string.loading)
134134
}
135-
audioRecordUtil = AudioRecordUtil(
136-
this,
137-
"${presenter.getProductId()}/${presenter.getDeviceName()}",
138-
16000,
139-
AudioFormat.CHANNEL_IN_MONO,
140-
AudioFormat.ENCODING_PCM_16BIT
141-
)
142-
// //变调可以传入pitch参数
143-
// audioRecordUtil = AudioRecordUtil(this, "${it.productId}/${presenter.getDeviceName()}", 16000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, -6)
144-
// //变调可以传入pitch参数
145-
// audioRecordUtil = AudioRecordUtil(this, "${it.productId}/${presenter.getDeviceName()}", 16000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, 0, this)
146-
// audioRecordUtil.recordSpeakFlv(true)
147135
getDeviceP2PInfo()
148136
XP2P.setCallback(this)
149137
//实例化对象并设置监听器
@@ -249,14 +237,14 @@ class VideoPreviewActivity : VideoPreviewBaseActivity<ActivityVideoPreviewBindin
249237
Command.getTwoWayRadio(presenter.getChannel()),
250238
true
251239
)
252-
audioRecordUtil.start()
240+
audioRecordUtil?.start()
253241
speakAble = true
254242
return true
255243
}
256244
}
257245
} else {
258246
speakAble = false
259-
audioRecordUtil.stop()
247+
audioRecordUtil?.stop()
260248
XP2P.stopSendService("${accessInfo.productId}/${presenter.getDeviceName()}", null)
261249
return true
262250
}
@@ -274,6 +262,19 @@ class VideoPreviewActivity : VideoPreviewBaseActivity<ActivityVideoPreviewBindin
274262
}
275263
tvVideoQuality.setOnClickListener(switchVideoQualityListener)
276264
radioTalk.setOnCheckedChangeListener { buttonView, isChecked ->
265+
if (audioRecordUtil == null) {
266+
audioRecordUtil = AudioRecordUtil(
267+
this@VideoPreviewActivity,
268+
"${presenter.getProductId()}/${presenter.getDeviceName()}",
269+
16000,
270+
AudioFormat.CHANNEL_IN_MONO,
271+
AudioFormat.ENCODING_PCM_16BIT
272+
)
273+
// //变调可以传入pitch参数
274+
// audioRecordUtil = AudioRecordUtil(this, "${it.productId}/${presenter.getDeviceName()}", 16000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, -6) // //变调可以传入pitch参数 // audioRecordUtil = AudioRecordUtil(this, "${it.productId}/${presenter.getDeviceName()}", 16000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, 0, this)
275+
276+
}
277+
// audioRecordUtil.recordSpeakFlv(true)
277278
if (isChecked && checkPermissions(permissions)) {
278279
if (!speakAble(true)) radioTalk.isChecked = false
279280
} else if (isChecked && !checkPermissions(permissions)) {
@@ -777,7 +778,7 @@ class VideoPreviewActivity : VideoPreviewBaseActivity<ActivityVideoPreviewBindin
777778

778779
override fun onInfoAudioPcmData(mp: IMediaPlayer?, arrPcm: ByteArray?, length: Int) {
779780
// if (audioRecordUtil != null && length > 0 && speakAble) {
780-
// audioRecordUtil.setPlayerPcmData(arrPcm);
781+
// audioRecordUtil?.setPlayerPcmData(arrPcm);
781782
// }
782783
}
783784
}

sdkdemo/src/main/java/com/tencent/iot/explorer/link/demo/video/preview/VideoPreviewMJPEGActivity.kt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ class VideoPreviewMJPEGActivity : VideoPreviewBaseActivity<ActivityVideoPreviewB
7373
@Volatile
7474
var urlPrefix = ""
7575
var filePath: String? = null
76-
lateinit var audioRecordUtil: AudioRecordUtil
76+
var audioRecordUtil: AudioRecordUtil? = null
7777
var permissions = arrayOf(Manifest.permission.RECORD_AUDIO)
7878

7979
@Volatile
@@ -124,8 +124,6 @@ class VideoPreviewMJPEGActivity : VideoPreviewBaseActivity<ActivityVideoPreviewB
124124
tvEventStatus.setText(R.string.loading)
125125
}
126126

127-
audioRecordUtil =
128-
AudioRecordUtil(this, "${presenter.getProductId()}/${presenter.getDeviceName()}", 16000)
129127
getDeviceP2PInfo()
130128
XP2P.setCallback(this)
131129

@@ -208,8 +206,12 @@ class VideoPreviewMJPEGActivity : VideoPreviewBaseActivity<ActivityVideoPreviewB
208206
}
209207
}
210208

211-
open fun speakAble(able: Boolean): Boolean {
209+
private fun speakAble(able: Boolean): Boolean {
212210
App.data.accessInfo?.let { accessInfo ->
211+
if (audioRecordUtil == null){
212+
audioRecordUtil =
213+
AudioRecordUtil(this, "${presenter.getProductId()}/${presenter.getDeviceName()}", 16000)
214+
}
213215
if (able) {
214216
var command = Command.getNvrIpcStatus(presenter.getChannel(), 0)
215217
var repStatus = XP2P.postCommandRequestSync(
@@ -233,13 +235,13 @@ class VideoPreviewMJPEGActivity : VideoPreviewBaseActivity<ActivityVideoPreviewB
233235
Command.getTwoWayRadio(presenter.getChannel()),
234236
true
235237
)
236-
audioRecordUtil.start()
238+
audioRecordUtil?.start()
237239
return true
238240
}
239241
}
240242

241243
} else {
242-
audioRecordUtil.stop()
244+
audioRecordUtil?.stop()
243245
XP2P.stopSendService("${accessInfo.productId}/${presenter.getDeviceName()}", null)
244246
return true
245247
}

sdkdemo/src/main/java/com/tencent/iot/explorer/link/demo/video/preview/VideoTestActivity.kt

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ import tv.danmaku.ijk.media.player.IjkMediaPlayer
4949
import java.lang.ref.WeakReference
5050
import java.util.Locale
5151

52-
class VideoTestActivity : VideoBaseActivity<ActivityVideoTestBinding>(), XP2PCallback, CoroutineScope by MainScope(),
52+
class VideoTestActivity : VideoBaseActivity<ActivityVideoTestBinding>(), XP2PCallback,
53+
CoroutineScope by MainScope(),
5354
TextureView.SurfaceTextureListener, IMediaPlayer.OnInfoListener {
5455

5556
private val tag = VideoTestActivity::class.simpleName
@@ -90,7 +91,8 @@ class VideoTestActivity : VideoBaseActivity<ActivityVideoTestBinding>(), XP2PCal
9091
appConfig.type = XP2PProtocolType.XP2P_PROTOCOL_AUTO
9192
}
9293

93-
override fun getViewBinding(): ActivityVideoTestBinding = ActivityVideoTestBinding.inflate(layoutInflater)
94+
override fun getViewBinding(): ActivityVideoTestBinding =
95+
ActivityVideoTestBinding.inflate(layoutInflater)
9496

9597
override fun initView() {
9698
productId = intent.getStringExtra("productId")?.toString() ?: ""
@@ -109,19 +111,6 @@ class VideoTestActivity : VideoBaseActivity<ActivityVideoTestBinding>(), XP2PCal
109111
binding.vTitle.tvTitle.text = deviceName
110112
binding.tvVideoQuality.text = getString(R.string.video_quality_medium_str)
111113

112-
audioRecordUtil = AudioRecordUtil(
113-
this,
114-
"${productId}/${deviceName}",
115-
16000,
116-
AudioFormat.CHANNEL_IN_MONO,
117-
AudioFormat.ENCODING_PCM_16BIT
118-
)
119-
// //变调可以传入pitch参数
120-
// audioRecordUtil = AudioRecordUtil(this, "${it.productId}/${presenter.getDeviceName()}", 16000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, -6)
121-
// //变调可以传入pitch参数
122-
// audioRecordUtil = AudioRecordUtil(this, "${it.productId}/${presenter.getDeviceName()}", 16000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, 0, this)
123-
// audioRecordUtil.recordSpeakFlv(true)
124-
125114
XP2P.setCallback(this)
126115
val wm = this.getSystemService(WINDOW_SERVICE) as WindowManager
127116
val dm = DisplayMetrics()
@@ -196,6 +185,20 @@ class VideoTestActivity : VideoBaseActivity<ActivityVideoTestBinding>(), XP2PCal
196185
}
197186
tvVideoQuality.setOnClickListener(switchVideoQualityListener)
198187
radioTalk.setOnCheckedChangeListener { buttonView, isChecked ->
188+
if (audioRecordUtil == null) {
189+
audioRecordUtil = AudioRecordUtil(
190+
this@VideoTestActivity,
191+
"${productId}/${deviceName}",
192+
16000,
193+
AudioFormat.CHANNEL_IN_MONO,
194+
AudioFormat.ENCODING_PCM_16BIT
195+
)
196+
// //变调可以传入pitch参数
197+
// audioRecordUtil = AudioRecordUtil(this, "${it.productId}/${presenter.getDeviceName()}", 16000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, -6)
198+
// //变调可以传入pitch参数
199+
// audioRecordUtil = AudioRecordUtil(this, "${it.productId}/${presenter.getDeviceName()}", 16000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, 0, this)
200+
}
201+
// audioRecordUtil.recordSpeakFlv(true)
199202
if (isChecked && checkPermissions(permissions)) {
200203
if (!speakAble(true)) radioTalk.isChecked = false
201204
} else if (isChecked && !checkPermissions(permissions)) {
@@ -363,10 +366,10 @@ class VideoTestActivity : VideoBaseActivity<ActivityVideoTestBinding>(), XP2PCal
363366
override fun onClick(v: View?) {
364367
var command = ""
365368
when (v) {
366-
binding.ivUp-> command = Command.getPtzUpCommand(channel)
367-
binding.ivDown-> command = Command.getPtzDownCommand(channel)
368-
binding.ivRight-> command = Command.getPtzRightCommand(channel)
369-
binding.ivLeft-> command = Command.getPtzLeftCommand(channel)
369+
binding.ivUp -> command = Command.getPtzUpCommand(channel)
370+
binding.ivDown -> command = Command.getPtzDownCommand(channel)
371+
binding.ivRight -> command = Command.getPtzRightCommand(channel)
372+
binding.ivLeft -> command = Command.getPtzLeftCommand(channel)
370373
}
371374

372375
Thread(Runnable {

0 commit comments

Comments
 (0)