Skip to content

Commit b360534

Browse files
committed
修复没有本地回放的情况下,进入本地回放造成的异常表现
Change-Id: Ie53d4165bf655cb3b43b6b4ec0093f36a4b292b2
1 parent 002f5c3 commit b360534

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

sdkdemo/src/main/java/com/tencent/iot/explorer/link/demo/video/playback/localPlayback/VideoLocalPlaybackFragment.kt

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,14 @@ class VideoLocalPlaybackFragment: VideoPlaybackBaseFragment(), TextureView.Surfa
8282
private var keepStartTime = 0L
8383
private var keepEndTime = 0L
8484
private var filePath: String? = null
85+
@Volatile
86+
private var connected = false;
87+
88+
private fun sendCmd(id: String, cmd: String):String {
89+
if (connected)
90+
return XP2P.postCommandRequestSync(id, cmd.toByteArray(), cmd.toByteArray().size.toLong(), 2 * 1000 * 1000)
91+
return ""
92+
}
8593

8694
override fun startHere(view: View) {
8795
super.startHere(view)
@@ -114,7 +122,7 @@ class VideoLocalPlaybackFragment: VideoPlaybackBaseFragment(), TextureView.Surfa
114122
if (currentPlayerState) {
115123
launch (Dispatchers.IO) {
116124
var stopCommand = Command.pauseLocalVideoUrl(devInfo!!.channel)
117-
var resp = XP2P.postCommandRequestSync(id, stopCommand.toByteArray(), stopCommand.toByteArray().size.toLong(), 2 * 1000 * 1000)
125+
var resp = sendCmd(id, stopCommand)
118126
var commandResp = JSONObject.parseObject(resp, CommandResp::class.java)
119127
if (commandResp != null && commandResp.status == 0) {
120128
launch (Dispatchers.Main) {
@@ -130,7 +138,7 @@ class VideoLocalPlaybackFragment: VideoPlaybackBaseFragment(), TextureView.Surfa
130138
} else {
131139
launch (Dispatchers.IO) {
132140
var startCommand = Command.resumeLocalVideoUrl(devInfo!!.channel)
133-
var resp = XP2P.postCommandRequestSync(id, startCommand.toByteArray(), startCommand.toByteArray().size.toLong(), 2 * 1000 * 1000)
141+
var resp = sendCmd(id, startCommand)
134142
var commandResp = JSONObject.parseObject(resp, CommandResp::class.java)
135143
if (commandResp != null && commandResp.status == 0) {
136144
launch (Dispatchers.Main) {
@@ -159,10 +167,7 @@ class VideoLocalPlaybackFragment: VideoPlaybackBaseFragment(), TextureView.Surfa
159167
playVideo(blockTime.startTime.time/1000, blockTime.endTime.time/1000, offest/1000)
160168
return@onChange
161169
}
162-
}
163-
164-
// 如果对应时间段没有视频内容
165-
palayback_video.setVideoURI(Uri.parse(""))
170+
}
166171
}
167172
}
168173
}
@@ -377,7 +382,7 @@ class VideoLocalPlaybackFragment: VideoPlaybackBaseFragment(), TextureView.Surfa
377382
L.d(TAG, "request timeStr $timeStr")
378383
var command = Command.getMonthDates(devInfo!!.channel, timeStr)
379384
if (TextUtils.isEmpty(command)) return ""
380-
return XP2P.postCommandRequestSync(id, command.toByteArray(), command.toByteArray().size.toLong(), 2 * 1000 * 1000)
385+
return sendCmd(id, command)
381386
}
382387

383388
private fun refreshDateTime(date: Date) {
@@ -386,7 +391,7 @@ class VideoLocalPlaybackFragment: VideoPlaybackBaseFragment(), TextureView.Surfa
386391

387392
var id = "${App.data.accessInfo?.productId}/${devInfo?.deviceName}"
388393
var command = Command.getDayTimeBlocks(devInfo!!.channel, date)
389-
var resp = XP2P.postCommandRequestSync(id, command.toByteArray(), command.toByteArray().size.toLong(), 2 * 1000 * 1000)
394+
var resp = sendCmd(id, command)
390395

391396
if (TextUtils.isEmpty(resp)) return
392397
var devVideoHistory = JSONObject.parseObject(resp, DevVideoHistory::class.java)
@@ -442,7 +447,7 @@ class VideoLocalPlaybackFragment: VideoPlaybackBaseFragment(), TextureView.Surfa
442447
var seekCommand = Command.seekLocalVideo(dev.channel, offset)
443448
var id = "${App.data.accessInfo?.productId}/${dev.deviceName}"
444449

445-
var seekResp = XP2P.postCommandRequestSync(id, seekCommand.toByteArray(), seekCommand.toByteArray().size.toLong(), 2 * 1000 * 1000)
450+
var seekResp = sendCmd(id, seekCommand)
446451
var commandResp = JSON.parseObject(seekResp, CommandResp::class.java)
447452
L.e(TAG, "seekCommandResp code " + commandResp?.status)
448453
}
@@ -571,6 +576,7 @@ class VideoLocalPlaybackFragment: VideoPlaybackBaseFragment(), TextureView.Surfa
571576
launch (Dispatchers.Main) {
572577
Toast.makeText(context, getString(R.string.error_with_code, id, msg), Toast.LENGTH_SHORT).show()
573578
}
579+
connected = false
574580

575581
} else if (event == 1004 || event == 1005) {
576582
countDownLatchs.get(id)?.let {
@@ -581,6 +587,7 @@ class VideoLocalPlaybackFragment: VideoPlaybackBaseFragment(), TextureView.Surfa
581587
launch (Dispatchers.Main) {
582588
Toast.makeText(context, getString(R.string.connected, id), Toast.LENGTH_SHORT).show()
583589
}
590+
connected = true
584591
}
585592
}
586593

0 commit comments

Comments
 (0)