diff --git a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_base_fragment.xml b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_base_fragment.xml index 4ae8945d94..a8dc0fe8f9 100644 --- a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_base_fragment.xml +++ b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_base_fragment.xml @@ -205,7 +205,7 @@ android:layout_marginEnd="@dimen/dp_52" app:layout_constraintBottom_toTopOf="@+id/aciv_xiaozhi_normal" app:layout_constraintRight_toRightOf="parent" - android:visibility="gone"/> + android:visibility="visible"/> = ArrayList() + list.add(VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "reconnect", 3)) + GSYVideoManager.instance().optionModelList = list + GSYVideoType.setShowType(GSYVideoType.SCREEN_MATCH_FULL) + PlayerFactory.setPlayManager(IjkPlayerManager::class.java) + svpPlayer.setPlayListener(object : SimpleVideoPlayer.PlayListener { + override fun onPlayEvent(event: Int) { + CallerLogger.d("${SceneConstant.M_HMI}$TAG", "onPlayEvent: event is:$event") + when (event) { + SimpleVideoPlayer.PLAY_EVT_PLAY_LOADING -> { + // 会出现临时中断后又可以继续播放,需要停掉倒计时 + if (videoLoadingAnimation.hasStarted()) { + videoLoadingAnimation.cancel() + } + } + + SimpleVideoPlayer.PLAY_EVT_PLAY_BEGIN -> { + CallerLogger.w( + "${SceneConstant.M_HMI}$TAG", + "播放视频成功, event is:$event" + ) + showVideoAfterLoad() + isPlaySuccess = true + } + + else -> { + CallerLogger.w( + "${SceneConstant.M_HMI}$TAG", + "播放视频异常, event is:$event" + ) + stopLoading() + showPlayFail() + } + } + } + }) + } + + fun startPlay(flvUrl: String) { + this.flvUrl = flvUrl + if (TextUtils.isEmpty(flvUrl)) { + CallerLogger.e( + "${SceneConstant.M_HMI}$TAG", + "播放视频异常, flvUrl=$flvUrl" + ) + showPlayFail() + return + } + CallerLogger.w( + "${SceneConstant.M_HMI}$TAG", + "开始播放视频, flvUrl=$flvUrl" + ) + startLoading() + this.flvUrl?.also { + startLoadVideo(it) + } } /** - * 展示加载中 + * 展示 加载中 */ - fun showLoading() { + private fun startLoading() { + tvTipContent.visibility = View.GONE + ivTipLogo.visibility = View.GONE + svpPlayer.visibility = View.GONE + + ivLoading.setImageDrawable( + ContextCompat.getDrawable( + context, R.drawable.hmi_v2n_event_video_play_loading_passenger + ) + ) + ivLoading.startAnimation(videoLoadingAnimation) + ivLoading.visibility = View.VISIBLE + } + + /** + * 停止 加载中 + */ + private fun stopLoading() { + videoLoadingAnimation?.cancel() + ivLoading.visibility = View.GONE + } + + /** + * 展示 加载失败 + */ + private fun showPlayFail() { tvTipContent.visibility = View.GONE ivTipLogo.visibility = View.VISIBLE svpPlayer.visibility = View.GONE + ivLoading.visibility = View.GONE } /** - * 展示请求视频流地址失败 + * 加载完后 展示播放画面 */ - fun showLoadFail() { - tvTipContent.visibility = View.VISIBLE - ivTipLogo.visibility = View.GONE - svpPlayer.visibility = View.GONE - } - - /** - * 开始视频流播放 - */ - fun showLivePlay(flvUrl: String) { - gsyVideoOptionBuilder.setUrl(flvUrl) + private fun startLoadVideo(flvUrl: String) { + gsyVideoOptionBuilder + .setUrl(flvUrl) .setCacheWithPlay(false) .setAutoFullWithSize(false) .setIsTouchWigetFull(false) .setIsTouchWiget(false) - .setPlayTag(TAG).build(svpPlayer) + .setPlayTag(TAG) + .build(svpPlayer) svpPlayer.startButton.performClick() + } + /** + * 加载完后 展示播放画面 + */ + private fun showVideoAfterLoad() { tvTipContent.visibility = View.GONE ivTipLogo.visibility = View.GONE svpPlayer.visibility = View.VISIBLE + ivLoading.visibility = View.GONE } override fun onAttachedToWindow() { super.onAttachedToWindow() + startLoading() } override fun onDetachedFromWindow() { super.onDetachedFromWindow() + stopLoading() } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/anim/loading_rotate_animation.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/anim/loading_rotate_animation.xml new file mode 100644 index 0000000000..8471c84d8b --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/anim/loading_rotate_animation.xml @@ -0,0 +1,11 @@ + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/hmi_v2n_event_bg_passenger.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/hmi_v2n_event_bg_passenger.png new file mode 100644 index 0000000000..95ee9da77c Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/hmi_v2n_event_bg_passenger.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/hmi_v2n_event_mogo_logo.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/hmi_v2n_event_mogo_logo_driver.png similarity index 100% rename from core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/hmi_v2n_event_mogo_logo.png rename to core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/hmi_v2n_event_mogo_logo_driver.png diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/hmi_v2n_event_mogo_logo_passenger.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/hmi_v2n_event_mogo_logo_passenger.png new file mode 100644 index 0000000000..785575b64e Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/hmi_v2n_event_mogo_logo_passenger.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/hmi_v2n_event_video_play_loading_passenger.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/hmi_v2n_event_video_play_loading_passenger.png new file mode 100644 index 0000000000..cb1c80997c Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/hmi_v2n_event_video_play_loading_passenger.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_passenger_v2n_event.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_v2n_event_driver.xml similarity index 56% rename from core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_passenger_v2n_event.xml rename to core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_v2n_event_driver.xml index 6bea71228c..45ef29ec9b 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_passenger_v2n_event.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_v2n_event_driver.xml @@ -1,10 +1,10 @@ - + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_v2n_event_live_play.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_v2n_event_live_play_driver.xml similarity index 100% rename from core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_v2n_event_live_play.xml rename to core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_v2n_event_live_play_driver.xml diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_v2n_event_live_play_passenger.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_v2n_event_live_play_passenger.xml new file mode 100644 index 0000000000..91cd731bb5 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_v2n_event_live_play_passenger.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/hmi_view_passenger_v2n_event.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/hmi_view_passenger_v2n_event.xml index 8adc040e70..c8e902495b 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/hmi_view_passenger_v2n_event.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/hmi_view_passenger_v2n_event.xml @@ -1,11 +1,10 @@ - + android:background="@drawable/bg_v2n_event_driver"> + tools:text="前方150米 道路施工 前方150米 道路施工 前方150米 道路施工" /> @@ -60,15 +59,17 @@ android:layout_marginStart="@dimen/dp_51" android:layout_marginTop="@dimen/dp_24" android:layout_marginEnd="@dimen/dp_51" + android:visibility="visible" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" - app:layout_constraintTop_toBottomOf="@+id/containerEvent" /> + app:layout_constraintTop_toBottomOf="@id/containerEvent" /> - \ No newline at end of file + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/hmi_view_v2n_event_live_play.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/hmi_view_v2n_event_live_play.xml index f04c426cfb..53a82cce55 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/hmi_view_v2n_event_live_play.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/hmi_view_v2n_event_live_play.xml @@ -1,10 +1,10 @@ - + + - \ No newline at end of file + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_camera_list.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_camera_list.xml index 7de0b8b8a3..62e838091c 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_camera_list.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_camera_list.xml @@ -80,7 +80,7 @@ style="?android:attr/progressBarStyleSmall" android:layout_width="36dp" android:layout_height="36dp" - android:visibility="gone" + android:visibility="visible" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent"