接入保利威视demo

This commit is contained in:
XiuYun CHEN
2025-05-15 13:11:26 +08:00
parent b2bdaeaff3
commit bed645747d
182 changed files with 9605 additions and 8 deletions
@@ -0,0 +1,43 @@
import { DependScope, MutableObserver } from '@polyvharmony/media-player-sdk'
import { PLVMPMediaViewModel } from '../../modules/media/viewmodel/PLVMPMediaViewModel'
import { PLVMPMediaControllerViewModel } from '../../modules/mediacontroller/viewmodel/PLVMPMediaControllerViewModel'
import { isLandscape } from '../../utils/PLVDisplayUtils'
@Component
export struct PLVMediaPlayerSpeedTextView {
@Consume dependScope: DependScope
private mediaViewModel: PLVMPMediaViewModel = this.dependScope.get(PLVMPMediaViewModel)
private controllerViewModel: PLVMPMediaControllerViewModel = this.dependScope.get(PLVMPMediaControllerViewModel)
@State isVisible: boolean = false
@State currentSpeed: number = 1.0
private observers: MutableObserver[] = []
aboutToAppear(): void {
this.mediaViewModel.mediaPlayViewState.observe((viewState) => {
this.currentSpeed = viewState.speed
}).pushTo(this.observers)
this.controllerViewModel.mediaControllerViewState.observe((viewState) => {
this.isVisible = viewState.controllerVisible
&& !viewState.isMediaStopOverlayVisible()
&& !viewState.progressSliderDragging
&& !viewState.controllerLocking
&& !(viewState.isFloatActionLayoutVisible() && isLandscape())
}).pushTo(this.observers)
}
build() {
Text(`${this.currentSpeed.toFixed(1)}x`)
.fontSize(14)
.fontColor('#FFFFFF')
.visibility(this.isVisible ? Visibility.Visible : Visibility.None)
.onClick(() => {
this.controllerViewModel.pushFloatActionLayout('speed')
})
}
aboutToDisappear(): void {
MutableObserver.disposeAll(this.observers)
this.observers = []
}
}