11package com.tencent.iot.explorer.link.demo.core.activity
22
3- import android.os.Bundle
3+ import android.text.TextUtils
44import android.view.View
55import android.widget.Toast
6+ import com.alibaba.fastjson.JSON
7+ import com.tencent.iot.explorer.link.core.auth.IoTAuth
8+ import com.tencent.iot.explorer.link.core.auth.callback.MyCallback
9+ import com.tencent.iot.explorer.link.core.auth.entity.DeviceEntity
10+ import com.tencent.iot.explorer.link.core.auth.message.MessageConst
11+ import com.tencent.iot.explorer.link.core.auth.response.BaseResponse
12+ import com.tencent.iot.explorer.link.core.auth.util.JsonManager
13+ import com.tencent.iot.explorer.link.core.link.entity.TRTCParamsEntity
14+ import com.tencent.iot.explorer.link.core.log.L
615import com.tencent.iot.explorer.link.demo.BaseActivity
716import com.tencent.iot.explorer.link.demo.R
817import com.tencent.iot.explorer.link.demo.databinding.ActivityCameraDetailBinding
918import com.tencent.iot.explorer.link.demo.video.playback.VideoPlaybackActivity
10- import com.tencent.iot.explorer.link.demo.core.activity.ShareDeviceActivity
1119
1220/* *
1321 * 摄像头详情页面 - 视频播放和控制界面
1422 */
15- class CameraDetailActivity : BaseActivity <ActivityCameraDetailBinding >() {
23+ class DeviceDetailActivity : BaseActivity <ActivityCameraDetailBinding >(), MyCallback {
1624
1725 private var isPlaying = false
1826 private var isMuted = true
@@ -26,10 +34,15 @@ class CameraDetailActivity : BaseActivity<ActivityCameraDetailBinding>() {
2634 override fun initView () {
2735// // 设置状态栏透明
2836// setStatusBarTransparent()
29-
37+ val deviceInfo = intent.getStringExtra(" deviceInfo" )
38+ if (deviceInfo.isNullOrEmpty()) {
39+ L .e(" deviceInfo is empty" )
40+ return
41+ }
42+ val deviceEntity = JsonManager .parseJson(deviceInfo, DeviceEntity ::class .java)
43+ IoTAuth .deviceImpl.callTrtcDeviceByApp(deviceEntity.DeviceId , this )
3044 // 初始化视频播放器
3145 initVideoPlayer()
32-
3346 // 更新UI状态
3447 updateUIState()
3548 }
@@ -112,9 +125,9 @@ class CameraDetailActivity : BaseActivity<ActivityCameraDetailBinding>() {
112125 private fun setStatusBarTransparent () {
113126 // TODO: 实现状态栏透明设置
114127 window.decorView.systemUiVisibility = (
115- View .SYSTEM_UI_FLAG_LAYOUT_STABLE or
116- View .SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
117- )
128+ View .SYSTEM_UI_FLAG_LAYOUT_STABLE or
129+ View .SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
130+ )
118131 }
119132
120133 /* *
@@ -123,7 +136,7 @@ class CameraDetailActivity : BaseActivity<ActivityCameraDetailBinding>() {
123136 private fun initVideoPlayer () {
124137 // TODO: 初始化视频播放器,连接摄像头流
125138 binding.loadingOverlay.visibility = View .VISIBLE
126-
139+
127140 // 模拟视频加载
128141 binding.videoPlayer.postDelayed({
129142 binding.loadingOverlay.visibility = View .GONE
@@ -150,7 +163,8 @@ class CameraDetailActivity : BaseActivity<ActivityCameraDetailBinding>() {
150163 isPlaying = false
151164 updateUIState()
152165 }
153- Toast .makeText(this , if (isPowerOn) " 摄像头已开启" else " 摄像头已关闭" , Toast .LENGTH_SHORT ).show()
166+ Toast .makeText(this , if (isPowerOn) " 摄像头已开启" else " 摄像头已关闭" , Toast .LENGTH_SHORT )
167+ .show()
154168 }
155169
156170 /* *
@@ -170,7 +184,7 @@ class CameraDetailActivity : BaseActivity<ActivityCameraDetailBinding>() {
170184 val currentIndex = qualities.indexOf(currentQuality)
171185 val nextIndex = (currentIndex + 1 ) % qualities.size
172186 currentQuality = qualities[nextIndex]
173-
187+
174188 binding.btnQuality.text = currentQuality
175189 Toast .makeText(this , " 画质切换为: $currentQuality " , Toast .LENGTH_SHORT ).show()
176190 }
@@ -224,18 +238,22 @@ class CameraDetailActivity : BaseActivity<ActivityCameraDetailBinding>() {
224238 // TODO: 云台上移
225239 Toast .makeText(this , " 云台上移" , Toast .LENGTH_SHORT ).show()
226240 }
241+
227242 " down" -> {
228243 // TODO: 云台下移
229244 Toast .makeText(this , " 云台下移" , Toast .LENGTH_SHORT ).show()
230245 }
246+
231247 " left" -> {
232248 // TODO: 云台左移
233249 Toast .makeText(this , " 云台左移" , Toast .LENGTH_SHORT ).show()
234250 }
251+
235252 " right" -> {
236253 // TODO: 云台右移
237254 Toast .makeText(this , " 云台右移" , Toast .LENGTH_SHORT ).show()
238255 }
256+
239257 " home" -> {
240258 // TODO: 云台复位
241259 Toast .makeText(this , " 云台复位" , Toast .LENGTH_SHORT ).show()
@@ -284,7 +302,7 @@ class CameraDetailActivity : BaseActivity<ActivityCameraDetailBinding>() {
284302
285303 // 更新视频播放状态
286304 videoPlayer.visibility = if (isPlaying && isPowerOn) View .VISIBLE else View .INVISIBLE
287-
305+
288306 if (! isPowerOn) {
289307 loadingOverlay.visibility = View .GONE
290308 }
@@ -297,4 +315,18 @@ class CameraDetailActivity : BaseActivity<ActivityCameraDetailBinding>() {
297315 isPlaying = false
298316 isPowerOn = false
299317 }
318+
319+ override fun fail (msg : String? , reqCode : Int ) {
320+ L .e(" 请求失败: $msg , reqCode: $reqCode " )
321+ }
322+
323+ override fun success (response : BaseResponse , reqCode : Int ) {
324+ if (response.isSuccess()) {
325+ val data =
326+ JSON .parseObject(response.data.toString()).getString(MessageConst .TRTC_PARAMS )
327+ if (TextUtils .isEmpty(data)) return ;
328+ val params = JSON .parseObject(data, TRTCParamsEntity ::class .java)
329+ // TODO: 呼叫房间
330+ }
331+ }
300332}
0 commit comments