liyubing

feat:横屏直播详情页面添加垫片逻辑

@@ -7,9 +7,10 @@ import mediaquery from '@ohos.mediaquery'; @@ -7,9 +7,10 @@ import mediaquery from '@ohos.mediaquery';
7 import { Logger, WindowModel } from 'wdKit/Index'; 7 import { Logger, WindowModel } from 'wdKit/Index';
8 import { router, window } from '@kit.ArkUI'; 8 import { router, window } from '@kit.ArkUI';
9 import { WDAliPlayerController } from 'wdPlayer/Index'; 9 import { WDAliPlayerController } from 'wdPlayer/Index';
10 -import { LiveOperRowListView } from 'wdComponent'; 10 +import { LiveEmptyComponent, LiveOperRowListView } from 'wdComponent';
11 import { publishCommentModel } from 'wdComponent/src/main/ets/components/comment/model/PublishCommentModel'; 11 import { publishCommentModel } from 'wdComponent/src/main/ets/components/comment/model/PublishCommentModel';
12 import { TrackConstants, TrackingContent, TrackParamConvert } from 'wdTracking/Index'; 12 import { TrackConstants, TrackingContent, TrackParamConvert } from 'wdTracking/Index';
  13 +import { LiveDetailPageLogic } from '../viewModel/LiveDetailPageLogic';
13 14
14 let TAG: string = 'DetailPlayLivePage'; 15 let TAG: string = 'DetailPlayLivePage';
15 16
@@ -39,6 +40,8 @@ export struct DetailPlayLivePage { @@ -39,6 +40,8 @@ export struct DetailPlayLivePage {
39 @State lastInputedLiveComment: LiveRoomItemBean = {} as LiveRoomItemBean // 上次输入的直播间消息 40 @State lastInputedLiveComment: LiveRoomItemBean = {} as LiveRoomItemBean // 上次输入的直播间消息
40 @State lastInputedChatComment: LiveRoomItemBean = {} as LiveRoomItemBean // 上次输入的大家聊消息 41 @State lastInputedChatComment: LiveRoomItemBean = {} as LiveRoomItemBean // 上次输入的大家聊消息
41 42
  43 +
  44 +
42 aboutToAppear(): void { 45 aboutToAppear(): void {
43 Logger.info(TAG, `wyj-aboutToAppear`) 46 Logger.info(TAG, `wyj-aboutToAppear`)
44 47
@@ -66,8 +69,9 @@ export struct DetailPlayLivePage { @@ -66,8 +69,9 @@ export struct DetailPlayLivePage {
66 build() { 69 build() {
67 Column() { 70 Column() {
68 71
69 - TopPlayComponent({ playerController: this.playerController })  
70 - .height(this.displayDirection == DisplayDirection.VERTICAL ? 211 : '100%') 72 + TopPlayComponent({ playerController: this.playerController })
  73 + .height(this.displayDirection == DisplayDirection.VERTICAL ? 211 : '100%')
  74 +
71 75
72 TabComponent({ 76 TabComponent({
73 tabs: this.tabs, 77 tabs: this.tabs,
@@ -83,7 +83,6 @@ export struct DetailPlayVLivePage { @@ -83,7 +83,6 @@ export struct DetailPlayVLivePage {
83 83
84 if (this.liveDetailPageLogic.showPad) { 84 if (this.liveDetailPageLogic.showPad) {
85 // 有垫片 85 // 有垫片
86 -  
87 if(this.liveDetailPageLogic.padImageUri.length > 0){ 86 if(this.liveDetailPageLogic.padImageUri.length > 0){
88 // 配置了垫片资源 87 // 配置了垫片资源
89 Image(this.liveDetailPageLogic.padImageUri).objectFit(ImageFit.Fill).width('100%').height('100%') 88 Image(this.liveDetailPageLogic.padImageUri).objectFit(ImageFit.Fill).width('100%').height('100%')
@@ -4,6 +4,8 @@ import { PlayerConstants, WDAliPlayerController, WDPlayerRenderLiveView } from ' @@ -4,6 +4,8 @@ import { PlayerConstants, WDAliPlayerController, WDPlayerRenderLiveView } from '
4 import { PlayUIComponent } from './PlayUIComponent'; 4 import { PlayUIComponent } from './PlayUIComponent';
5 import { PictureLoading } from '../../vertical/PictureLoading'; 5 import { PictureLoading } from '../../vertical/PictureLoading';
6 import { TrackConstants } from 'wdTracking/Index'; 6 import { TrackConstants } from 'wdTracking/Index';
  7 +import { LiveDetailPageLogic } from '../../../viewModel/LiveDetailPageLogic';
  8 +import { LiveEmptyComponent, WDLiveViewDefaultType } from 'wdComponent/Index';
7 9
8 const TAG: string = 'TopPlayComponent' 10 const TAG: string = 'TopPlayComponent'
9 11
@@ -32,6 +34,7 @@ export struct TopPlayComponent { @@ -32,6 +34,7 @@ export struct TopPlayComponent {
32 @Provide playSourceState: number = 0 34 @Provide playSourceState: number = 0
33 private playUrl: string = "" 35 private playUrl: string = ""
34 private xComponentIsLoaded: boolean = false 36 private xComponentIsLoaded: boolean = false
  37 + @Consume liveDetailPageLogic: LiveDetailPageLogic
35 38
36 aboutToAppear(): void { 39 aboutToAppear(): void {
37 if (this.playerController) { 40 if (this.playerController) {
@@ -66,6 +69,15 @@ export struct TopPlayComponent { @@ -66,6 +69,15 @@ export struct TopPlayComponent {
66 * 更新直播播放数据 69 * 更新直播播放数据
67 */ 70 */
68 updateData() { 71 updateData() {
  72 +
  73 + // 检测垫片
  74 + if (this.liveDetailPageLogic.showPad){
  75 + this.isHideLoading = true
  76 + this.isWait = true
  77 + this.previewUrl = this.liveDetailPageLogic.imgUrl
  78 + return
  79 + }
  80 +
69 // 检测直播等待状态的直播预告是否视频资源 81 // 检测直播等待状态的直播预告是否视频资源
70 if (this.contentDetailData.liveInfo && this.contentDetailData.liveInfo.previewType === 1 82 if (this.contentDetailData.liveInfo && this.contentDetailData.liveInfo.previewType === 1
71 && this.contentDetailData?.liveInfo?.liveState == 'wait' 83 && this.contentDetailData?.liveInfo?.liveState == 'wait'
@@ -140,7 +152,8 @@ export struct TopPlayComponent { @@ -140,7 +152,8 @@ export struct TopPlayComponent {
140 this.previewUrl = '' 152 this.previewUrl = ''
141 } 153 }
142 } 154 }
143 - // Logger.debug(TAG, `---0------>` + this.isWait + ' ->' + this.isHideLoading + ' ->' + this.isEnd+' -->'+this.isVideoSource) 155 + Logger.debug(TAG,
  156 + `---0------>` + this.isWait + ' ->' + this.isHideLoading + ' ->' + this.isEnd + ' -->' + this.isVideoSource)
144 } 157 }
145 158
146 tryToPlay() { 159 tryToPlay() {
@@ -163,22 +176,29 @@ export struct TopPlayComponent { @@ -163,22 +176,29 @@ export struct TopPlayComponent {
163 176
164 build() { 177 build() {
165 Stack() { 178 Stack() {
166 - // 视频资源播放  
167 - WDPlayerRenderLiveView({  
168 - playerController: this.playerController,  
169 - onLoad: async () => {  
170 - if (StringUtils.isNotEmpty(this.playUrl)) {  
171 - this.isHideLoading = false  
172 - this.isError = false  
173 - this.xComponentIsLoaded = true  
174 - Logger.debug(TAG, `---onLoad------>`)  
175 - this.tryToPlay() 179 +
  180 + if (this.liveDetailPageLogic.showPad) {
  181 +
  182 +
  183 + } else {
  184 + // 视频资源播放
  185 + WDPlayerRenderLiveView({
  186 + playerController: this.playerController,
  187 + onLoad: async () => {
  188 + if (StringUtils.isNotEmpty(this.playUrl)) {
  189 + this.isHideLoading = false
  190 + this.isError = false
  191 + this.xComponentIsLoaded = true
  192 + Logger.debug(TAG, `---onLoad------>`)
  193 + this.tryToPlay()
  194 + }
176 } 195 }
177 - }  
178 - })  
179 - .height('100%')  
180 - .width('100%')  
181 - .visibility(this.isWait ? Visibility.None : Visibility.Visible) 196 + })
  197 + .height('100%')
  198 + .width('100%')
  199 + .visibility(this.isWait ? Visibility.None : Visibility.Visible)
  200 + }
  201 +
182 202
183 if (this.isVideoSource) { 203 if (this.isVideoSource) {
184 204
@@ -187,10 +207,25 @@ export struct TopPlayComponent { @@ -187,10 +207,25 @@ export struct TopPlayComponent {
187 Image(this.previewUrl) 207 Image(this.previewUrl)
188 .objectFit(ImageFit.Cover) 208 .objectFit(ImageFit.Cover)
189 .alt($r('app.media.live_room_image_fail')) 209 .alt($r('app.media.live_room_image_fail'))
190 - .visibility(this.isWait || this.isEnd ? Visibility.Visible : Visibility.None)  
191 - // .contrast(this.isEnd ? 0.4 : 1) 210 + .visibility(this.isWait || this.isEnd ? Visibility.Visible :
  211 + Visibility.None)// .contrast(this.isEnd ? 0.4 : 1)
192 .blur(this.isEnd ? 20 : 0) 212 .blur(this.isEnd ? 20 : 0)
193 .width('100%') 213 .width('100%')
  214 +
  215 + if (this.liveDetailPageLogic.showPad) {
  216 + // 有垫片
  217 + if (this.liveDetailPageLogic.padImageUri.length > 0) {
  218 + // 配置了垫片资源
  219 + Image(this.liveDetailPageLogic.padImageUri).objectFit(ImageFit.Fill).width('100%').height('100%')
  220 +
  221 + } else {
  222 + // 没有配置垫片资源
  223 + LiveEmptyComponent({
  224 + emptyType: WDLiveViewDefaultType.WDViewDefaultType_NoLiveSuspend
  225 + }).width('100%').height('100%')
  226 + }
  227 +
  228 + }
194 } 229 }
195 230
196 // loading 231 // loading