Skip to content

Commit

Permalink
更新xp2p sdk版本到2.4.53
Browse files Browse the repository at this point in the history
  • Loading branch information
neilyhe committed Feb 17, 2025
1 parent ffd9eb1 commit b70a80f
Show file tree
Hide file tree
Showing 20 changed files with 2,489 additions and 2,107 deletions.
4 changes: 2 additions & 2 deletions sdk/video-link-android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ android {
buildToolsVersion "30.0.2"

defaultConfig {
minSdkVersion 24
minSdkVersion 21
targetSdkVersion 29
versionCode 1
versionName "1.0"
Expand Down Expand Up @@ -53,7 +53,7 @@ dependencies {
// changing = true
// }
// api 'com.tencent.iot.thirdparty.android:xp2p-sdk:2.4.23'
api 'com.tencent.iot.thirdparty.android:xp2p-sdk:2.4.52'
api 'com.tencent.iot.thirdparty.android:xp2p-sdk:2.4.53'
api 'com.tencent.iot.thirdparty.android:media-server:1.0.7'
api 'io.github.sundoggynew:iot-soundtouch:1.0.0'
api 'io.github.sundoggynew:iot-voice-changer:1.0.0'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,21 @@ open class VideoBaseService(secretId: String, secretKey: String) {
param, headerParams, callback, VideoRequestCode.video_describe_product)
}

fun getDeviceXp2pInfo(productId: String,deviceName:String, callback: VideoCallback) {
var headerParams = videoCommonHeaderParams("DescribeP2PInfo", "2021-11-25")
val param = TreeMap<String, Any>()
param["ProductId"] = productId
param["DeviceName"] = deviceName

val authorization = sign(VideoHttpUtil.VIDEO_SERVICE, headerParams, param)
if (authorization != null) {
headerParams["Authorization"] = authorization
}
basePost(VideoHttpUtil.VIDEO_SERVICE + VideoHttpUtil.REST_HOST_URL,
param, headerParams, callback, VideoRequestCode.video_describe_product)
}


fun getVideoBaseUrl(productId: String, devName: String, callback: VideoCallback) {
var headerParams = videoCommonHeaderParams("DescribeCloudStorageVideoUrl")
val param = TreeMap<String, Any>()
Expand Down
16 changes: 8 additions & 8 deletions sdkdemo/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -58,25 +58,25 @@
<activity android:name=".video.VideoWlanDetectActivity" />
<activity android:name=".video.preview.VideoTestActivity" />
<activity android:name=".video.VideoTestInputActivity" />
<activity android:name=".video.preview.WlanVideoPreviewActivity"
android:configChanges="orientation|keyboardHidden|screenSize"/>
<!-- <activity android:name=".video.preview.WlanVideoPreviewActivity"-->
<!-- android:configChanges="orientation|keyboardHidden|screenSize"/>-->
<activity android:name=".video.VideoMainActivity" />
<activity android:name=".video.nvr.VideoNvrActivity" />
<activity
android:name=".video.playback.VideoPlaybackActivity"
android:configChanges="orientation|keyboardHidden|screenSize" />
<activity
android:name=".video.preview.VideoMultiPreviewActivity"
android:configChanges="orientation|keyboardHidden|screenSize" />
<!-- <activity-->
<!-- android:name=".video.preview.VideoMultiPreviewActivity"-->
<!-- android:configChanges="orientation|keyboardHidden|screenSize" />-->
<activity
android:name=".video.preview.VideoPreviewActivity"
android:configChanges="orientation|keyboardHidden|screenSize" />
<activity
android:name=".video.preview.VideoPreviewMJPEGActivity"
android:configChanges="orientation|keyboardHidden|screenSize" />
<activity
android:name=".video.preview.VideoWithoutPropertyActivity"
android:configChanges="orientation|keyboardHidden|screenSize" />
<!-- <activity-->
<!-- android:name=".video.preview.VideoWithoutPropertyActivity"-->
<!-- android:configChanges="orientation|keyboardHidden|screenSize" />-->
<activity
android:name=".video.preview.VideoPushStreamActivity"
android:configChanges="orientation|keyboardHidden|screenSize" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,14 @@ abstract class BaseActivity : AppCompatActivity() {

abstract fun getContentView(): Int

open fun performInitView(){}

abstract fun initView()

abstract fun setListener()

open fun startHere() {
performInitView()
initView()
setListener()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ class VideoDeviceFragment : BaseFragment(), VideoCallback, DevsAdapter.OnItemCli
}
}

VideoMultiPreviewActivity.startMultiPreviewActivity(context, allUrl)
// VideoMultiPreviewActivity.startMultiPreviewActivity(context, allUrl)
}
}

Expand All @@ -137,24 +137,24 @@ class VideoDeviceFragment : BaseFragment(), VideoCallback, DevsAdapter.OnItemCli
0 -> { VideoPreviewActivity.startPreviewActivity(context, dev) }
1 -> { VideoPlaybackActivity.startPlaybackActivity(context, dev) }
2 -> { VideoPreviewMJPEGActivity.startPreviewActivity(context, dev) }
3 -> { VideoWithoutPropertyActivity.startPreviewActivity(context, dev) }
// 3 -> { VideoWithoutPropertyActivity.startPreviewActivity(context, dev) }
4 -> { VideoPushStreamActivity.startPreviewActivity(context, dev) }
5 -> {
val multipleChannelChooseDialog = MultipleChannelChooseDialog(context)
multipleChannelChooseDialog.show()
multipleChannelChooseDialog.setOnDismisListener { selectChannels ->
var allUrl = ArrayList<DevUrl2Preview>()
for (i in 0 until selectChannels.size) {
var device = DevUrl2Preview()
device.devName = dev.DeviceName
device.Status = 1
device.channel = selectChannels[i]
allUrl.add(device)
}

VideoMultiPreviewActivity.startMultiPreviewActivity(context, allUrl)
}
}
// 5 -> {
// val multipleChannelChooseDialog = MultipleChannelChooseDialog(context)
// multipleChannelChooseDialog.show()
// multipleChannelChooseDialog.setOnDismisListener { selectChannels ->
// var allUrl = ArrayList<DevUrl2Preview>()
// for (i in 0 until selectChannels.size) {
// var device = DevUrl2Preview()
// device.devName = dev.DeviceName
// device.Status = 1
// device.channel = selectChannels[i]
// allUrl.add(device)
// }
//
// VideoMultiPreviewActivity.startMultiPreviewActivity(context, allUrl)
// }
// }
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class VideoOptionsActivity : VideoBaseActivity() {

override fun setListener() {
btn_video.setOnClickListener { jumpActivity(VideoInputAuthorizeActivity::class.java) }
btn_video_wlan.setOnClickListener { jumpActivity(VideoWlanDetectActivity::class.java) }
// btn_video_wlan.setOnClickListener { jumpActivity(VideoWlanDetectActivity::class.java) }
btn_video_test.setOnClickListener { jumpActivity(VideoTestInputActivity::class.java) }
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
package com.tencent.iot.explorer.link.demo.video

import android.os.Bundle
import android.text.TextUtils
import com.alibaba.fastjson.JSON
import com.tencent.iot.explorer.link.demo.App
import com.tencent.iot.explorer.link.demo.VideoBaseActivity
import com.tencent.iot.explorer.link.demo.common.util.StatusBarUtil
import com.tencent.iot.explorer.link.demo.video.playback.cloudPlayback.event.EventPresenter
import com.tencent.iot.explorer.link.demo.video.playback.cloudPlayback.event.EventView
import com.tencent.iot.explorer.link.demo.video.preview.DevUrl2Preview
import com.tencent.iot.video.link.callback.VideoCallback
import com.tencent.iot.video.link.consts.VideoConst
import com.tencent.iot.video.link.service.VideoBaseService
import org.json.JSONObject
import java.util.Date

abstract class VideoPreviewBaseActivity : VideoBaseActivity(), EventView, VideoCallback {

protected lateinit var presenter: EventPresenter
protected var xp2pInfo: String = ""
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
checkStyle()
}

private fun checkStyle() {
StatusBarUtil.setRootViewFitsSystemWindows(this, false)
StatusBarUtil.setTranslucentStatus(this)
if (!StatusBarUtil.setStatusBarDarkTheme(this, true)) {
StatusBarUtil.setStatusBarColor(this, 0x55000000)
}
}

override fun performInitView() {
presenter = EventPresenter(this@VideoPreviewBaseActivity)
val bundle = intent.getBundleExtra(VideoConst.VIDEO_CONFIG)
bundle?.let {
val videoConfig = bundle.getString(VideoConst.VIDEO_CONFIG)
if (TextUtils.isEmpty(videoConfig)) return@let

val devInfo = JSON.parseObject(videoConfig, DevUrl2Preview::class.java)
devInfo?.let {
presenter.setDeviceName(it.devName)
presenter.setChannel(it.channel)
}
}

App.data.accessInfo?.let {
presenter.setAccessId(it.accessId)
presenter.setAccessToken(it.accessToken)
presenter.setProductId(it.productId)
presenter.getEventsData(Date())
}
}

protected fun getDeviceP2PInfo() {
App.data.accessInfo?.let {
VideoBaseService(it.accessId, it.accessToken).getDeviceXp2pInfo(
it.productId,
presenter.getDeviceName(),
this
)
}
}

abstract fun updateXp2pInfo(xp2pInfo: String)

override fun success(response: String?, reqCode: Int) {
response?.let {
val responseObject = JSONObject(it).getJSONObject("Response")
xp2pInfo = responseObject.getString("P2PInfo")
}
updateXp2pInfo(xp2pInfo)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import com.tencent.iot.explorer.link.core.utils.SharePreferenceUtil
import com.tencent.iot.explorer.link.demo.App
import com.tencent.iot.explorer.link.demo.R
import com.tencent.iot.explorer.link.demo.VideoBaseActivity
import com.tencent.iot.explorer.link.demo.video.preview.WlanVideoPreviewActivity
//import com.tencent.iot.explorer.link.demo.video.preview.WlanVideoPreviewActivity
import com.tencent.iot.video.link.callback.OnWlanDevicesDetectedCallback
import com.tencent.iot.video.link.consts.VideoConst
import com.tencent.iot.video.link.entity.DeviceServerInfo
Expand Down Expand Up @@ -79,7 +79,7 @@ class VideoWlanDetectActivity : VideoBaseActivity() , CoroutineScope by MainScop
dev.DeviceName = datas.get(pos).deviceName
dev.Channel = 0
dev.Status = 1
WlanVideoPreviewActivity.startPreviewActivity(this@VideoWlanDetectActivity, dev)
// WlanVideoPreviewActivity.startPreviewActivity(this@VideoWlanDetectActivity, dev)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,11 @@ import com.tencent.iot.explorer.link.demo.video.playback.VideoPlaybackActivity
import com.tencent.iot.explorer.link.demo.video.DevInfo
import com.tencent.iot.explorer.link.demo.video.preview.DevUrl2Preview
import com.tencent.iot.explorer.link.demo.video.VideoProductInfo
import com.tencent.iot.explorer.link.demo.video.preview.VideoMultiPreviewActivity
//import com.tencent.iot.explorer.link.demo.video.preview.VideoMultiPreviewActivity
import com.tencent.iot.explorer.link.demo.video.preview.VideoPreviewActivity
import com.tencent.iot.video.link.consts.VideoConst
import com.tencent.xnet.XP2P
import com.tencent.xnet.XP2PAppConfig
import com.tencent.xnet.XP2PCallback
import kotlinx.android.synthetic.main.fragment_video_device.*
import kotlinx.android.synthetic.main.title_layout.*
Expand Down Expand Up @@ -87,9 +88,9 @@ class VideoNvrActivity : VideoBaseActivity(), DevsAdapter.OnItemClicked, XP2PCal

App.data.accessInfo?.let {
countDownLatch = CountDownLatch(1)
var started = XP2P.startServiceWithXp2pInfo(this@VideoNvrActivity, "${it.productId}/${devName}",
it.productId, devName, "")
if (started != 0) return@launch
XP2P.startService(this@VideoNvrActivity, "${it.productId}/${devName}",
it.productId, devName, XP2PAppConfig()
)

countDownLatch.await(5, TimeUnit.SECONDS)
queryNvrDev(devName)
Expand All @@ -112,7 +113,7 @@ class VideoNvrActivity : VideoBaseActivity(), DevsAdapter.OnItemClicked, XP2PCal
}
}

VideoMultiPreviewActivity.startMultiPreviewActivity(this@VideoNvrActivity, allUrl)
// VideoMultiPreviewActivity.startMultiPreviewActivity(this@VideoNvrActivity, allUrl)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,10 @@ class EventModel(view: EventView) : ParentModel<EventView>(view), VideoCallback
this.productId = productId
}

fun getProductId() : String {
return this.productId
}

fun setDeviceName(deviceName : String) {
this.deviceName = deviceName
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,13 @@ class EventPresenter : ParentPresenter<EventModel, EventView> {
model?.setProductId(productId)
}

fun getProductId() : String {
model?.let {
return it.getProductId()
}
return ""
}

fun setDeviceName(deviceName : String) {
model?.setDeviceName(deviceName)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import com.tencent.iot.explorer.link.demo.video.DevInfo
import com.tencent.iot.explorer.link.demo.video.playback.*
import com.tencent.iot.explorer.link.demo.video.utils.ToastDialog
import com.tencent.xnet.XP2P
import com.tencent.xnet.XP2PAppConfig
import com.tencent.xnet.XP2PCallback
import kotlinx.android.synthetic.main.activity_video_preview.*
import kotlinx.android.synthetic.main.fragment_video_cloud_playback.*
Expand Down Expand Up @@ -623,16 +624,13 @@ class VideoLocalPlaybackFragment : VideoPlaybackBaseFragment(), TextureView.Surf

Thread(Runnable {
var id = "${App.data.accessInfo?.productId}/${devInfo?.DeviceName}"
var started = XP2P.startServiceWithXp2pInfo(context,
var started = XP2P.startService(context,
id,
App.data.accessInfo?.productId, devInfo?.DeviceName, ""
App.data.accessInfo?.productId, devInfo?.DeviceName, XP2PAppConfig()
)
if (started != 0) {
launch(Dispatchers.Main) {
var errInfo = getString(R.string.error_with_code, id, started.toString())
Toast.makeText(context, errInfo, Toast.LENGTH_SHORT).show()
}
return@Runnable
}

devInfo?.let {
Expand Down Expand Up @@ -667,19 +665,20 @@ class VideoLocalPlaybackFragment : VideoPlaybackBaseFragment(), TextureView.Surf

// 发现断开尝试恢复视频,每隔一秒尝试一次
XP2P.stopService(id)
while (XP2P.startServiceWithXp2pInfo(context,
id,
App.data.accessInfo!!.productId,
devInfo?.DeviceName,
""
) != 0
) {
XP2P.stopService(id)
synchronized(objectLock) {
objectLock.wait(1000)
}
Log.d(TAG, "id=${id}, try to call startServiceWithXp2pInfo")
}
// XP2P.startService(context,
// id,
// App.data.accessInfo!!.productId,
// devInfo?.DeviceName,
// XP2PAppConfig()
// )
// while (
// ) {
// XP2P.stopService(id)
// synchronized(objectLock) {
// objectLock.wait(1000)
// }
// Log.d(TAG, "id=${id}, try to call startServiceWithXp2pInfo")
// }

Log.d(TAG, "id=${id}, call startServiceWithXp2pInfo successed")
countDownLatchs.put(id!!, tmpCountDownLatch)
Expand Down
Loading

0 comments on commit b70a80f

Please sign in to comment.