diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 12bd47f..8c1d637 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,7 +80,8 @@
android:exported="false" />
+ android:exported="false"
+ android:configChanges="orientation|screenSize|keyboardHidden" />
diff --git a/app/src/main/java/com/example/defenseapplication/home/AddFamilyActivity.kt b/app/src/main/java/com/example/defenseapplication/home/AddFamilyActivity.kt
index fb3efef..526590b 100644
--- a/app/src/main/java/com/example/defenseapplication/home/AddFamilyActivity.kt
+++ b/app/src/main/java/com/example/defenseapplication/home/AddFamilyActivity.kt
@@ -28,7 +28,7 @@ import com.example.defenseapplication.adapter.WifiListAdapter
import com.example.defenseapplication.databinding.AddFamilyActivityBinding
import com.example.defenseapplication.databinding.DialogWifiListBinding
import com.gyf.immersionbar.ImmersionBar
-
+//选择Wi-Fi
class AddFamilyActivity : AppCompatActivity() {
private lateinit var binding: AddFamilyActivityBinding
diff --git a/app/src/main/java/com/example/defenseapplication/liveVideo/AlarmLogActivity.kt b/app/src/main/java/com/example/defenseapplication/liveVideo/AlarmLogActivity.kt
index ab5b98c..6884918 100644
--- a/app/src/main/java/com/example/defenseapplication/liveVideo/AlarmLogActivity.kt
+++ b/app/src/main/java/com/example/defenseapplication/liveVideo/AlarmLogActivity.kt
@@ -1,16 +1,25 @@
package com.example.defenseapplication.liveVideo
+import android.content.res.Configuration
import android.graphics.Color
import android.os.Bundle
+import android.util.Log
+import android.view.View
+import android.widget.LinearLayout
+import android.widget.Toast
+import androidx.activity.OnBackPressedCallback
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
+import chuangyuan.ycj.videolibrary.listener.VideoInfoListener
+import chuangyuan.ycj.videolibrary.video.ExoUserPlayer
+import chuangyuan.ycj.videolibrary.video.VideoPlayerManager
+import com.example.defenseapplication.R
import com.example.defenseapplication.adapter.AlarmLogAdapter
import com.example.defenseapplication.databinding.AlarmLogActivityBinding
import com.gyf.immersionbar.ImmersionBar
import java.util.*
import com.bigkoo.pickerview.builder.TimePickerBuilder
import com.bigkoo.pickerview.listener.OnTimeSelectListener
-import com.example.defenseapplication.R
//告警记录
class AlarmLogActivity : AppCompatActivity() {
@@ -18,6 +27,7 @@ class AlarmLogActivity : AppCompatActivity() {
private lateinit var calendar: Calendar
private var adapter: AlarmLogAdapter? = null
private val alarmList = mutableListOf()
+ private lateinit var exoPlayerManager: ExoUserPlayer
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -25,14 +35,65 @@ class AlarmLogActivity : AppCompatActivity() {
setContentView(binding.root)
ImmersionBar.with(this)
.statusBarDarkFont(true)
- .titleBar(binding.topBar)
+ .titleBar(binding.exoPlayContextId)
.init()
calendar = Calendar.getInstance()
updateDateDisplay()
+ initVideoPlayer()
initRecyclerView()
loadAlarmList()
initListener()
+
+ onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
+ override fun handleOnBackPressed() {
+ if (exoPlayerManager.onBackPressed()) {
+ return
+ }
+ finish()
+ }
+ })
+ }
+
+ private fun dpToPx(dp: Int): Int {
+ val density = resources.displayMetrics.density
+ return (dp * density).toInt()
+ }
+
+ private fun initVideoPlayer() {
+ val videoPlayerView = binding.exoPlayContextId
+
+ exoPlayerManager = VideoPlayerManager.Builder(VideoPlayerManager.TYPE_PLAY_GESTURE, videoPlayerView)
+ .setPlayUri("https://media.w3.org/2010/05/sintel/trailer.mp4")
+ .setPosition(0)
+ .addVideoInfoListener(object : VideoInfoListener {
+ override fun onPlayStart(p0: Long) {
+ Log.d("AlarmLogActivity", "视频开始播放")
+ }
+
+ override fun onLoadingChanged() {
+ // 视频加载状态变化
+ }
+
+ override fun onPlayerError(p0: com.google.android.exoplayer2.ExoPlaybackException?) {
+ Toast.makeText(this@AlarmLogActivity, "播放失败", Toast.LENGTH_SHORT).show()
+ }
+
+ override fun onPlayEnd() {
+ Log.d("AlarmLogActivity", "播放结束")
+ }
+
+ override fun isPlaying(p0: Boolean) {
+ // p0 表示当前是否正在播放
+ }
+
+ fun onRepeatModeChanged(p0: Int) {
+ // 循环模式改变时的回调
+ }
+ })
+ .create()
+
+ exoPlayerManager.startPlayer()
}
private fun initRecyclerView() {
@@ -58,14 +119,52 @@ class AlarmLogActivity : AppCompatActivity() {
}
private fun initListener() {
- binding.btnBack.setOnClickListener {
- finish()
- }
binding.expandImg.setOnClickListener {
showDatePicker()
}
}
+ override fun onResume() {
+ super.onResume()
+ exoPlayerManager.onResume()
+ }
+
+ override fun onPause() {
+ super.onPause()
+ exoPlayerManager.onPause()
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ exoPlayerManager.onDestroy()
+ }
+
+ override fun onConfigurationChanged(newConfig: Configuration) {
+ super.onConfigurationChanged(newConfig)
+
+ if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
+ // 进入横屏(全屏)模式
+ binding.titleLayout.visibility = View.GONE
+ binding.alarmListRecyclerView.visibility = View.GONE
+
+ val params = binding.exoPlayContextId.layoutParams
+ params.width = LinearLayout.LayoutParams.MATCH_PARENT
+ params.height = LinearLayout.LayoutParams.MATCH_PARENT
+ binding.exoPlayContextId.layoutParams = params
+ } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
+ // 进入竖屏(非全屏)模式
+ binding.titleLayout.visibility = View.VISIBLE
+ binding.alarmListRecyclerView.visibility = View.VISIBLE
+
+ val params = binding.exoPlayContextId.layoutParams
+ params.width = LinearLayout.LayoutParams.MATCH_PARENT
+ params.height = dpToPx(250)
+ binding.exoPlayContextId.layoutParams = params
+ }
+
+ exoPlayerManager.onConfigurationChanged(newConfig)
+ }
+
private fun showDatePicker() {
val timePicker = TimePickerBuilder(this, OnTimeSelectListener { date, _ ->
calendar.time = date
diff --git a/app/src/main/java/com/example/defenseapplication/liveVideo/LiveVideoActivity.kt b/app/src/main/java/com/example/defenseapplication/liveVideo/LiveVideoActivity.kt
index db9b89f..c80c7bf 100644
--- a/app/src/main/java/com/example/defenseapplication/liveVideo/LiveVideoActivity.kt
+++ b/app/src/main/java/com/example/defenseapplication/liveVideo/LiveVideoActivity.kt
@@ -27,7 +27,6 @@ import android.view.ViewGroup
import android.widget.ImageView
import android.widget.LinearLayout
-private const val TAG = "LiveVideoActivity"
//智能防御机A1
class LiveVideoActivity : BaseActivity() {
private lateinit var binding: LiveVideoActivityBinding
@@ -90,7 +89,7 @@ class LiveVideoActivity : BaseActivity() {
.addVideoInfoListener(object : VideoInfoListener {
// 注意:此处的 p0: Long 是视频开始播放时的位置信息,可以按需使用
override fun onPlayStart(p0: Long) {
- Log.d(TAG, "视频开始播放")
+ Log.d("AlarmLogActivity", "视频开始播放")
}
override fun onLoadingChanged() {
@@ -102,7 +101,7 @@ class LiveVideoActivity : BaseActivity() {
}
override fun onPlayEnd() {
- Log.d(TAG, "播放结束")
+ Log.d("AlarmLogActivity", "播放结束")
}
// 修正点:库的接口要求必须实现 isPlaying 方法
diff --git a/app/src/main/res/drawable/chinexe.png b/app/src/main/res/drawable/chinexe.png
index 9df0a92..9ee4450 100644
Binary files a/app/src/main/res/drawable/chinexe.png and b/app/src/main/res/drawable/chinexe.png differ
diff --git a/app/src/main/res/drawable/english.png b/app/src/main/res/drawable/english.png
index 77c1fab..d796218 100644
Binary files a/app/src/main/res/drawable/english.png and b/app/src/main/res/drawable/english.png differ
diff --git a/app/src/main/res/layout/alarm_log_activity.xml b/app/src/main/res/layout/alarm_log_activity.xml
index 06abb5d..31f7cbd 100644
--- a/app/src/main/res/layout/alarm_log_activity.xml
+++ b/app/src/main/res/layout/alarm_log_activity.xml
@@ -1,156 +1,23 @@
-
+
+ android:layout_height="250dp"
+ android:background="@android:color/transparent"
+ app:use_controller="true"/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/live_video_activity.xml b/app/src/main/res/layout/live_video_activity.xml
index 957b333..bf93904 100644
--- a/app/src/main/res/layout/live_video_activity.xml
+++ b/app/src/main/res/layout/live_video_activity.xml
@@ -169,6 +169,7 @@
android:padding="16dp">