PlayerProgressFullScreenView.ets 1.67 KB
import { ContentDetailDTO } from 'wdBean/Index';
import { DateTimeUtils } from 'wdKit/Index';
import { PlayerConstants, WDPlayerController } from 'wdPlayer/Index';

@Component
export struct PlayerProgressFullScreenView {
  private playerController?: WDPlayerController;
  @Consume contentDetailData: ContentDetailDTO
  @Consume progressVal: number;
  @Consume isOpenDetail: boolean
  @Consume isDragging: boolean
  @Consume status: number
  @State videoDuration: number = this.contentDetailData?.videoInfo?.[0]?.videoDuration || 1

  aboutToAppear() {
    if (this.playerController) {

      this.playerController.onSeekDone = (status: number) => {
        this.playerController?.play()
      }
    }
  }

  build() {
    Column() {
    
      Slider({
        value: this.progressVal,
        step: 0.01,
        // style: SliderStyle.OutSet
      })
        .blockColor($r('app.color.play_block_color'))
        .trackColor($r('app.color.pause_track_color'))
        .selectedColor($r('app.color.pause_selected_color'))
        .trackThickness(4)
        .blockStyle({
          type: SliderBlockType.IMAGE,
          image: $r('app.media.ic_player_block')
        })
        .trackThickness(1)
        .blockSize({ width: 18, height: 12 })
        .width('100%')
        .height(19)
        .onChange((value: number, mode: SliderChangeMode) => {
          this.progressVal = value
          if (mode === SliderChangeMode.Moving) {
            this.isDragging = true
          }
          if (mode === SliderChangeMode.End) {
            this.isDragging = false
          }
          this.playerController?.setSeekTime(value, mode);
          console.log('slider onChange:', value, mode)

        })
    }
  }
}