@@ -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