From 2975b50baad12bbde0308204866af24405415a1d Mon Sep 17 00:00:00 2001 From: xieyifeng Date: Thu, 11 Sep 2025 15:41:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=95=B4=E6=94=B9-=E8=A1=A5?= =?UTF-8?q?=E5=85=85=E5=8F=98=E9=87=8F=E7=B1=BB=E5=9E=8B=E5=92=8C=E5=87=BD?= =?UTF-8?q?=E6=95=B0=E8=BF=94=E5=9B=9E=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ets/controller/AvPlayerController.ets | 65 ++++++++++--------- .../ets/controller/AvSessionController.ets | 20 +++--- .../ets/controller/AvSessionController1.ets | 5 +- .../main/ets/utils/BackgroundTaskManager.ets | 2 +- .../src/main/ets/utils/CommUtils.ets | 2 +- .../src/main/ets/utils/ImageUtil.ets | 8 ++- .../MediaService/src/main/module.json5 | 2 +- VideoPlayerSample/README.md | 3 +- VideoPlayerSample/README_EN.md | 1 + .../src/main/ets/model/BasicDataSource.ets | 2 +- .../entry/src/main/ets/pages/IndexPage.ets | 8 +-- .../src/main/ets/utils/BreakpointSystem.ets | 2 +- .../entry/src/main/ets/utils/WindowUtil.ets | 10 +-- .../entry/src/main/ets/view/AVPlayer.ets | 36 +++++----- .../entry/src/main/ets/view/VideoDetails.ets | 2 +- .../entry/src/main/ets/view/VideoSide.ets | 2 +- 16 files changed, 91 insertions(+), 79 deletions(-) diff --git a/VideoPlayerSample/MediaService/src/main/ets/controller/AvPlayerController.ets b/VideoPlayerSample/MediaService/src/main/ets/controller/AvPlayerController.ets index 38fc91a3..c81f149d 100644 --- a/VideoPlayerSample/MediaService/src/main/ets/controller/AvPlayerController.ets +++ b/VideoPlayerSample/MediaService/src/main/ets/controller/AvPlayerController.ets @@ -18,13 +18,14 @@ import { media } from '@kit.MediaKit'; import { audio } from '@kit.AudioKit'; import { avSession } from '@kit.AVSessionKit'; import { BusinessError } from '@kit.BasicServicesKit'; +import { resourceManager } from '@kit.LocalizationKit'; import { AVPlayerState, CommonConstants } from '../common/CommonConstants'; import { secondToTime } from '../utils/CommUtils' import { VideoData } from '../model/VideoData'; import { AvSessionController } from './AvSessionController'; import Logger from '../utils/Logger'; -const TAG = '[AvPlayerController]'; +const TAG: string = '[AvPlayerController]'; @Observed export class AvPlayerController { @@ -47,12 +48,13 @@ export class AvPlayerController { this.avSessionController = AvSessionController.getInstance(); } - public initAVPlayer() { + public initAVPlayer(): void { media.createAVPlayer().then((player: media.AVPlayer) => { if (player !== null) { this.avPlayer = player; if (this.curSource.video) { - let fileDescriptor = this.context?.resourceManager.getRawFdSync(this.curSource.video); + let fileDescriptor: resourceManager.RawFileDescriptor | undefined = + this.context?.resourceManager.getRawFdSync(this.curSource.video); if (fileDescriptor) { let avFileDescriptor: media.AVFileDescriptor = { fd: fileDescriptor.fd, offset: fileDescriptor.offset, length: fileDescriptor.length }; @@ -75,7 +77,7 @@ export class AvPlayerController { }); } - private setAVPlayerCallback(avPlayer: media.AVPlayer) { + private setAVPlayerCallback(avPlayer: media.AVPlayer): void { if (!this.avPlayer) { return; } @@ -108,7 +110,7 @@ export class AvPlayerController { } // [Start listener1] - public async setAvSessionListener() { + public async setAvSessionListener(): Promise { if (!this.avSessionController) { return; } @@ -124,10 +126,11 @@ export class AvPlayerController { Logger.error(TAG, `setAvSessionListener failed, code is ${err.code}, message is ${err.message}`); } } + // [End listener1] // [Start set_back1] - private setInterruptCallback() { + private setInterruptCallback(): void { if (!this.avPlayer) { return; } @@ -184,9 +187,10 @@ export class AvPlayerController { } }) } + // [End set_back1] - private setStateChangeCallback(avPlayer: media.AVPlayer) { + private setStateChangeCallback(avPlayer: media.AVPlayer): void { avPlayer.on('stateChange', async (state: string) => { switch (state) { case 'idle': @@ -243,7 +247,7 @@ export class AvPlayerController { }) } - private setOutputDeviceChangeCallback() { + private setOutputDeviceChangeCallback(): void { if (!this.avPlayer) { return; } @@ -265,24 +269,27 @@ export class AvPlayerController { } // [Start update_is_play] - private updateIsPlay(isPlay: boolean) { + private updateIsPlay(isPlay: boolean): void { if (this.curIndex !== this.curSource.index) { return; } this.isPlaying = isPlay; this.avSessionController.setAvSessionPlayState({ - state: isPlay ? avSession.PlaybackState.PLAYBACK_STATE_PLAY : avSession.PlaybackState.PLAYBACK_STATE_PAUSE, //Playback status - position: { // Playback position + state: isPlay ? avSession.PlaybackState.PLAYBACK_STATE_PLAY : + avSession.PlaybackState.PLAYBACK_STATE_PAUSE, //Playback status + position: { + // Playback position elapsedTime: this.currentTime * 1000, // Elapsed time in milliseconds (ms) updateTime: new Date().getTime() // Update time, in ms }, duration: this.duration // The duration of the current media resource }); } + // [End update_is_play] private isCurAvSession(): boolean { - let curAvMetadata = this.avSessionController.getAvSessionMetadata(); + let curAvMetadata: avSession.AVMetadata | undefined = this.avSessionController.getAvSessionMetadata(); if (!curAvMetadata) { Logger.error(TAG, 'playVideo failed, AvMetadata is undefined'); } @@ -292,25 +299,25 @@ export class AvPlayerController { return false; } - private sessionPlayCallback() { + private sessionPlayCallback(): void { if (this.isCurAvSession()) { this.playVideo(); } } - private sessionPauseCallback() { + private sessionPauseCallback(): void { if (this.isCurAvSession()) { this.pauseVideo(); } } - private sessionStopCallback() { + private sessionStopCallback(): void { if (this.isCurAvSession()) { this.stopVideo(); } } - private sessionFastForwardCallback(time?: number) { + private sessionFastForwardCallback(time?: number): void { if (this.isCurAvSession()) { if (!time) { return; @@ -321,7 +328,7 @@ export class AvPlayerController { } } - private sessionRewindCallback(time?: number) { + private sessionRewindCallback(time?: number): void { if (!time) { return; } @@ -330,13 +337,13 @@ export class AvPlayerController { } } - private sessionSeekCallback(seekTime: number) { + private sessionSeekCallback(seekTime: number): void { if (this.isCurAvSession()) { this.seek(seekTime); } } - public playVideo() { + public playVideo(): void { if (this.avPlayer) { if (this.avPlayer.state !== AVPlayerState.PREPARED && this.avPlayer.state !== AVPlayerState.PAUSED && this.avPlayer.state !== AVPlayerState.COMPLETED) { @@ -359,7 +366,7 @@ export class AvPlayerController { } } - public pauseVideo() { + public pauseVideo(): void { if (this.avPlayer) { Logger.info(TAG, `pauseVideo: state:${this.avPlayer.state} this.curIndex:${this.curIndex}`); this.updateIsPlay(false); @@ -377,7 +384,7 @@ export class AvPlayerController { } } - public stopVideo() { + public stopVideo(): void { if (this.avPlayer) { Logger.info(TAG, `stopVideo: state: ${this.avPlayer.state} this.curIndex:${this.curIndex}`); if (this.avPlayer.state !== AVPlayerState.PREPARED && this.avPlayer.state !== AVPlayerState.PLAYING && @@ -400,7 +407,7 @@ export class AvPlayerController { } // Parameter seekTime unit - milliseconds (ms) - public seek(seekTime: number) { + public seek(seekTime: number): void { if (this.avPlayer) { seekTime = Math.max(seekTime, 0); seekTime = Math.min(seekTime, this.duration); @@ -414,31 +421,31 @@ export class AvPlayerController { } } - public setCurIndex(curIndex: number) { + public setCurIndex(curIndex: number): void { this.curIndex = curIndex; } - public setIsPlaying(isPlayer: boolean) { + public setIsPlaying(isPlayer: boolean): void { this.isPlaying = isPlayer; } - public setDurationTime(durationTime: number) { + public setDurationTime(durationTime: number): void { this.durationTime = durationTime; } - public setDurationStringTime(durationStringTime: string) { + public setDurationStringTime(durationStringTime: string): void { this.durationStringTime = durationStringTime; } - public setCurrentStringTime(currentStringTime: string) { + public setCurrentStringTime(currentStringTime: string): void { this.currentStringTime = currentStringTime; } - public setSurfaceID(surfaceID: string) { + public setSurfaceID(surfaceID: string): void { this.surfaceID = surfaceID; } - public releaseVideo(index: number) { + public releaseVideo(index: number): void { if (this.avPlayer) { Logger.info(TAG, `releaseVideo: state:${this.avPlayer.state} this.curIndex:${this.curIndex} this.index:${index}`); try { diff --git a/VideoPlayerSample/MediaService/src/main/ets/controller/AvSessionController.ets b/VideoPlayerSample/MediaService/src/main/ets/controller/AvSessionController.ets index 54f6bfe1..eb64d2a3 100644 --- a/VideoPlayerSample/MediaService/src/main/ets/controller/AvSessionController.ets +++ b/VideoPlayerSample/MediaService/src/main/ets/controller/AvSessionController.ets @@ -21,13 +21,13 @@ import Logger from '../utils/Logger'; import { ImageUtil } from '../utils/ImageUtil'; import { BackgroundTaskManager } from '../utils/BackgroundTaskManager'; -const TAG = 'AvSessionController'; +const TAG: string = 'AvSessionController'; export class AvSessionController { private static instance: AvSessionController | null; - private context: common.UIAbilityContext | undefined = undefined; + private context?: common.UIAbilityContext; private avSession?: avSession.AVSession; - private avSessionMetadata: avSession.AVMetadata | undefined = undefined; + private avSessionMetadata?: avSession.AVMetadata; constructor() { this.initAvSession(); @@ -40,7 +40,7 @@ export class AvSessionController { return AvSessionController.instance; } // [Start init_session] - public initAvSession() { + public initAvSession(): void { this.context = AppStorage.get('context'); // [StartExclude init_session] if (!this.context) { @@ -62,16 +62,16 @@ export class AvSessionController { } } // [End init_session] - public getAvSession() { + public getAvSession(): avSession.AVSession | undefined { return this.avSession; } - public getAvSessionMetadata() { + public getAvSessionMetadata(): avSession.AVMetadata | undefined { return this.avSessionMetadata; } // [Start meta_data] - public async setAVMetadata(curSource: VideoData, duration: number) { + public async setAVMetadata(curSource: VideoData, duration: number): Promise { // [StartExclude meta_data] if (curSource === undefined || this.context ===undefined) { Logger.error(TAG, 'SetAVMetadata Error, curSource or context is null'); @@ -101,7 +101,7 @@ export class AvSessionController { // [End meta_data] // [Start launch] - private setLaunchAbility() { + private setLaunchAbility(): void { // [StartExclude launch] if (!this.context) { return; @@ -129,7 +129,7 @@ export class AvSessionController { // [End launch] // [Start update_is_play] - public setAvSessionPlayState(playbackState: avSession.AVPlaybackState) { + public setAvSessionPlayState(playbackState: avSession.AVPlaybackState): void { if (this.avSession) { this.avSession.setAVPlaybackState(playbackState, (err: BusinessError) => { if (err) { @@ -143,7 +143,7 @@ export class AvSessionController { // [End update_is_play] // [Start init_session] - async unregisterSessionListener() { + async unregisterSessionListener(): Promise { // [StartExclude init_session] if (!this.avSession) { return; diff --git a/VideoPlayerSample/MediaService/src/main/ets/controller/AvSessionController1.ets b/VideoPlayerSample/MediaService/src/main/ets/controller/AvSessionController1.ets index 940dc40a..ff314329 100644 --- a/VideoPlayerSample/MediaService/src/main/ets/controller/AvSessionController1.ets +++ b/VideoPlayerSample/MediaService/src/main/ets/controller/AvSessionController1.ets @@ -17,11 +17,12 @@ import { hilog } from '@kit.PerformanceAnalysisKit'; import { common } from '@kit.AbilityKit'; // [Start session_controller1] import { avSession } from '@kit.AVSessionKit'; -const TAG = 'AvSessionController'; + +const TAG: string = 'AvSessionController'; export class AvSessionController { private avSession?: avSession.AVSession; - private context: common.UIAbilityContext | undefined = undefined; + private context?: common.UIAbilityContext; public initAvSession() { this.context = AppStorage.get('context'); if (!this.context) { diff --git a/VideoPlayerSample/MediaService/src/main/ets/utils/BackgroundTaskManager.ets b/VideoPlayerSample/MediaService/src/main/ets/utils/BackgroundTaskManager.ets index 73a7b42f..5daacddf 100644 --- a/VideoPlayerSample/MediaService/src/main/ets/utils/BackgroundTaskManager.ets +++ b/VideoPlayerSample/MediaService/src/main/ets/utils/BackgroundTaskManager.ets @@ -18,7 +18,7 @@ import { backgroundTaskManager } from '@kit.BackgroundTasksKit'; import { BusinessError } from '@kit.BasicServicesKit'; import Logger from './Logger'; -const TAG = '[BackgroundTaskManager]'; +const TAG: string = '[BackgroundTaskManager]'; /** * Background task tool class. diff --git a/VideoPlayerSample/MediaService/src/main/ets/utils/CommUtils.ets b/VideoPlayerSample/MediaService/src/main/ets/utils/CommUtils.ets index 605f7ba3..e4bb28ba 100644 --- a/VideoPlayerSample/MediaService/src/main/ets/utils/CommUtils.ets +++ b/VideoPlayerSample/MediaService/src/main/ets/utils/CommUtils.ets @@ -16,7 +16,7 @@ import { CommonConstants } from '../common/CommonConstants'; export function secondToTime(seconds: number): string { - let hourUnit = CommonConstants.HOUR_UNIT * CommonConstants.HOUR_UNIT; + let hourUnit: number = CommonConstants.HOUR_UNIT * CommonConstants.HOUR_UNIT; let hour: number = Math.floor(seconds / hourUnit); let minute: number = Math.floor((seconds - hour * hourUnit) / CommonConstants.HOUR_UNIT); let second: number = seconds - hour * hourUnit - minute * CommonConstants.HOUR_UNIT; diff --git a/VideoPlayerSample/MediaService/src/main/ets/utils/ImageUtil.ets b/VideoPlayerSample/MediaService/src/main/ets/utils/ImageUtil.ets index 3ff4b5cb..ec6ed539 100644 --- a/VideoPlayerSample/MediaService/src/main/ets/utils/ImageUtil.ets +++ b/VideoPlayerSample/MediaService/src/main/ets/utils/ImageUtil.ets @@ -17,11 +17,13 @@ import { image } from '@kit.ImageKit'; import Logger from './Logger'; export class ImageUtil { - public static async getPixmapFromMedia(resource: Resource) { + public static async getPixmapFromMedia(resource: Resource): Promise { const uiContext: UIContext | undefined = AppStorage.get('uiContext'); try { - let unit8Array = uiContext?.getHostContext()?.resourceManager?.getMediaContentSync(resource.id); - let imageSource = image.createImageSource(unit8Array?.buffer.slice(0, unit8Array?.buffer.byteLength)); + let unit8Array: Uint8Array | undefined = + uiContext?.getHostContext()?.resourceManager?.getMediaContentSync(resource.id); + let imageSource: image.ImageSource = + image.createImageSource(unit8Array?.buffer.slice(0, unit8Array?.buffer.byteLength)); let createPixelMap: image.PixelMap = await imageSource.createPixelMap({ desiredPixelFormat: image.PixelMapFormat.RGBA_8888 }); diff --git a/VideoPlayerSample/MediaService/src/main/module.json5 b/VideoPlayerSample/MediaService/src/main/module.json5 index db1a8f33..03bc1211 100644 --- a/VideoPlayerSample/MediaService/src/main/module.json5 +++ b/VideoPlayerSample/MediaService/src/main/module.json5 @@ -3,7 +3,7 @@ "name": "MediaService", "type": "har", "deviceTypes": [ - "default" + "phone" ], "requestPermissions": [ { diff --git a/VideoPlayerSample/README.md b/VideoPlayerSample/README.md index 49eeb8ba..b5767a8b 100644 --- a/VideoPlayerSample/README.md +++ b/VideoPlayerSample/README.md @@ -33,9 +33,10 @@ │ │ ├──BasicDataSource.ets // 懒加载DataSource │ │ └──DataModel.ets // 数据类 │ ├──pages -│ │ └──IndexPage.ets // 首页 +│ │ └──IndexPage.ets // 首页 │ ├──utils │ │ └──WindowUtil.ets // 窗口工具类 +│ │ └──BreakpointSystem.ets // 断点工具类 │ └──view │ ├──AVPlayer.ets // 视频组件 │ ├──VideoList.ets // 首页视频列表 diff --git a/VideoPlayerSample/README_EN.md b/VideoPlayerSample/README_EN.md index d4b44d55..48486b2c 100644 --- a/VideoPlayerSample/README_EN.md +++ b/VideoPlayerSample/README_EN.md @@ -35,6 +35,7 @@ This sample demonstrates how to develop a video app using the AVPlayer and AVSes │ │ └──IndexPage.ets // Home page │ ├──utils │ │ └──WindowUtil.ets // Window utility class +│ │ └──BreakpointSystem.ets // Breakpoint utility class │ └──view │ ├──AVPlayer.ets // Video component │ ├──VideoList.ets // Video list on the home page diff --git a/VideoPlayerSample/entry/src/main/ets/model/BasicDataSource.ets b/VideoPlayerSample/entry/src/main/ets/model/BasicDataSource.ets index 8f14b313..c2a24214 100644 --- a/VideoPlayerSample/entry/src/main/ets/model/BasicDataSource.ets +++ b/VideoPlayerSample/entry/src/main/ets/model/BasicDataSource.ets @@ -35,7 +35,7 @@ export abstract class BasicDataSource implements IDataSource { // Remove the listener from the data source for the corresponding LazyForEach component. unregisterDataChangeListener(listener: DataChangeListener): void { - const pos = this.listeners.indexOf(listener); + const pos: number = this.listeners.indexOf(listener); if (pos >= 0) { this.listeners.splice(pos, 1); } diff --git a/VideoPlayerSample/entry/src/main/ets/pages/IndexPage.ets b/VideoPlayerSample/entry/src/main/ets/pages/IndexPage.ets index f3cbc386..9490f4d9 100644 --- a/VideoPlayerSample/entry/src/main/ets/pages/IndexPage.ets +++ b/VideoPlayerSample/entry/src/main/ets/pages/IndexPage.ets @@ -22,7 +22,7 @@ import { VideoList } from '../view/VideoList'; import { VideoPlayer } from '../view/AVPlayer'; import { VideoDetails } from '../view/VideoDetails'; -const TAG = '[IndexPage]'; +const TAG: string = '[IndexPage]'; // [Start index_page1] @Entry @@ -87,7 +87,7 @@ struct IndexPage { return false; } - handleFullScreenExit() { + handleFullScreenExit(): void { if (this.isFullLandscapeScreen) { this.windowUtil.setLandscapeMultiWindow(false); this.windowUtil.enableWindowSystemBar(); @@ -220,7 +220,7 @@ struct IndexPage { .zIndex(Const.Z_INDEX_RIGHT_SIDE) } - private animateFullscreen() { + private animateFullscreen(): void { this.getUIContext().animateTo({ duration: Const.ANIMATE_DURATION }, () => { @@ -231,7 +231,7 @@ struct IndexPage { // [Start device_width1] // Because the width and height of the floating window are the system default, the value of isFloatWindow (whether to display the floating window or not) is only processed according to the height of the window, which is used to control the display and concealment of the interface components. // [EndExclude index_page1] - onWindowSizeChange() { + onWindowSizeChange(): void { // [StartExclude index_page1] let deviceWidth = AppStorage.get('deviceWidth') || 0; // Judge whether it is a horizontal screen or a vertical screen suspension window. diff --git a/VideoPlayerSample/entry/src/main/ets/utils/BreakpointSystem.ets b/VideoPlayerSample/entry/src/main/ets/utils/BreakpointSystem.ets index 6b193fd4..4f8c74c3 100644 --- a/VideoPlayerSample/entry/src/main/ets/utils/BreakpointSystem.ets +++ b/VideoPlayerSample/entry/src/main/ets/utils/BreakpointSystem.ets @@ -97,7 +97,7 @@ export class BreakpointSystem { try { const mainWindow: window.WindowProperties = window.getWindowProperties(); const windowWidth: number = mainWindow.windowRect.width; - const windowWidthVp = window.getUIContext().px2vp(windowWidth); + const windowWidthVp: number = window.getUIContext().px2vp(windowWidth); let widthBp: BreakpointTypeEnum = BreakpointTypeEnum.MD; if (windowWidthVp < 320) { widthBp = BreakpointTypeEnum.XS; diff --git a/VideoPlayerSample/entry/src/main/ets/utils/WindowUtil.ets b/VideoPlayerSample/entry/src/main/ets/utils/WindowUtil.ets index 1fd1a6e9..02db8c6b 100644 --- a/VideoPlayerSample/entry/src/main/ets/utils/WindowUtil.ets +++ b/VideoPlayerSample/entry/src/main/ets/utils/WindowUtil.ets @@ -45,7 +45,7 @@ export class WindowUtil { } // [EndExclude set_stage1] this.mainWindowClass = windowClass; - const properties = windowClass.getWindowProperties(); // Get window information + const properties: window.WindowProperties = windowClass.getWindowProperties(); // Get window information // [StartExclude set_stage1] // Get status bar height. let area: window.AvoidArea = windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM); @@ -67,7 +67,7 @@ export class WindowUtil { // [End set_stage1] // Get status bar height and indicator height. - public static setAvoidArea(type: window.AvoidAreaType, area: window.AvoidArea) { + public static setAvoidArea(type: window.AvoidAreaType, area: window.AvoidArea): void { const uiContext: UIContext = AppStorage.get('uiContext')!; if (type === window.AvoidAreaType.TYPE_SYSTEM) { AppStorage.setOrCreate('statusBarHeight', uiContext?.px2vp(area.topRect.height)); @@ -119,7 +119,7 @@ export class WindowUtil { } } - setLandscapeMultiWindow(enable: boolean) { + setLandscapeMultiWindow(enable: boolean): void { if (this.mainWindowClass === undefined) { Logger.error(`MainWindowClass is undefined`); return; @@ -136,7 +136,7 @@ export class WindowUtil { } // [Start size_change] // [Start about_appear] - registerOnWindowSizeChange(callback?: (size: window.Size) => void) { + registerOnWindowSizeChange(callback?: (size: window.Size) => void): void { // [StartExclude about_appear] // [StartExclude size_change] if (this.mainWindowClass === undefined) { @@ -154,7 +154,7 @@ export class WindowUtil { // [End about_appear] // [End size_change] - registerOffWindowSizeChange() { + registerOffWindowSizeChange(): void { if (this.mainWindowClass === undefined) { Logger.error(`MainWindowClass is undefined`); return; diff --git a/VideoPlayerSample/entry/src/main/ets/view/AVPlayer.ets b/VideoPlayerSample/entry/src/main/ets/view/AVPlayer.ets index 67c177f8..2da864fe 100644 --- a/VideoPlayerSample/entry/src/main/ets/view/AVPlayer.ets +++ b/VideoPlayerSample/entry/src/main/ets/view/AVPlayer.ets @@ -21,7 +21,7 @@ import { Logger, CommonConstants, secondToTime, } from '@ohos/MediaService'; import { AvPlayerController, VideoData } from '@ohos/MediaService'; import { FullScreenControl, VideoBottom } from './VideoSide'; -const TAG = '[VideoPlayer]'; +const TAG: string = '[VideoPlayer]'; @Preview @Component @@ -92,7 +92,7 @@ export struct VideoPlayer { } let groupId: number = audio.DEFAULT_VOLUME_GROUP_ID; - let audioManager = audio.getAudioManager(); + let audioManager: audio.AudioManager = audio.getAudioManager(); let audioVolumeManger: audio.AudioVolumeManager = audioManager.getVolumeManager(); audioVolumeManger.getVolumeGroupManager(groupId, (err: BusinessError, value: audio.AudioVolumeGroupManager) => { @@ -100,7 +100,7 @@ export struct VideoPlayer { hilog.error(0x0000, 'AVPlayer', `Failed to obtain the colume group infos list. ${err}`); return; } - let audioVolumeGroupManager = value; + let audioVolumeGroupManager: audio.AudioVolumeGroupManager = value; hilog.info(0x0000, 'AVPlayer', `Callback invoked to indicate that the volume group infos list is obtained.`); audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => { @@ -130,7 +130,7 @@ export struct VideoPlayer { }); } - onIndexChange() { + onIndexChange(): void { this.avPlayerController.setCurIndex(this.curIndex); Logger.info(TAG, `enter onIndexChange. ` + ` this.curIndex:${this.curIndex} this.index:${this.index}`); @@ -147,8 +147,8 @@ export struct VideoPlayer { this.avPlayerController.setIsPlaying(true); this.trackThicknessSize = CommonConstants.TRACK_SIZE_MIN; } else { - let countNum = 0; - let intervalFlag = setInterval(() => { + let countNum: number = 0; + let intervalFlag: number = setInterval(() => { countNum++; if (this.curIndex !== this.index) { Logger.info(TAG, `[ enter indexChange play error, clearInterval. ` + @@ -317,7 +317,7 @@ export struct VideoPlayer { if (event.fingerList[0].globalX > (820 / 2)) { // On the right side of the screen relative to the X-axis coordinate in the upper left corner of the application window, adjust the brightness. this.visible = true; - let curBrightness = this.screenBrightness - this.getUIContext().vp2px(event.offsetY) / this.getUIContext().vp2px(this.screenHeight); + let curBrightness: number = this.screenBrightness - this.getUIContext().vp2px(event.offsetY) / this.getUIContext().vp2px(this.screenHeight); curBrightness = Math.max(0, Math.min(1.0, curBrightness)); this.screenBrightness = curBrightness; hilog.info(0x0000, 'AVPlayer', `this brightness is: ` + this.screenBrightness); @@ -336,7 +336,7 @@ export struct VideoPlayer { } else { // On the left side of the screen relative to the X-axis coordinate in the upper left corner of the application window, adjust the volume. this.visible = false; - let curVolume = this.volume - this.getUIContext().vp2px(event.offsetY) / this.screenHeight; + let curVolume: number = this.volume - this.getUIContext().vp2px(event.offsetY) / this.screenHeight; curVolume = curVolume >= 15.0 ? 15.0 : curVolume; curVolume = curVolume <= 0.0 ? 0.0 : curVolume; this.volume = curVolume; @@ -382,7 +382,7 @@ export struct VideoPlayer { }) .onActionUpdate((event: GestureEvent) => { this.isSliderGesture = true; - let panTime = + let panTime: number = this.panStartTime + (this.panStartX + event.offsetX) / this.slideWidth * this.avPlayerController.durationTime; this.panEndTime = Math.min(Math.max(0, panTime), this.avPlayerController.durationTime); @@ -408,17 +408,17 @@ export struct VideoPlayer { .padding({ left: $r('app.float.size_16'), right: $r('app.float.size_16') }) } - private showTip(value: number) { + private showTip(value: number): void { if (value > 0 && this.isFullScreen) { this.showTipsTime = this.avPlayerController.currentStringTime; this.isShowTips = true; - let percent = Number((value / this.avPlayerController.durationTime).toFixed(2)); + let percent: number = Number((value / this.avPlayerController.durationTime).toFixed(2)); this.tipsOffset = this.getUIContext().px2vp(this.beginX) + (this.slideWidth - 16) * percent; this.hideTip(); } } - private hideTip() { + private hideTip(): void { clearTimeout(this.hideTipTask); this.hideTipTask = setTimeout(() => { this.isShowTips = false; @@ -560,7 +560,7 @@ export struct VideoPlayer { // 前台进度条变化接口 // [Start slider1] - sliderOnchange(seconds: number, mode: SliderChangeMode) { + sliderOnchange(seconds: number, mode: SliderChangeMode): void { let seekTime: number = seconds * this.avPlayerController.duration / this.avPlayerController.durationTime; this.currentStringTime = secondToTime(Math.floor(seekTime / CommonConstants.SECOND_TO_MS)); this.avPlayerController.setCurrentStringTime(this.currentStringTime); @@ -596,7 +596,7 @@ export struct VideoPlayer { } // [End slider1] - async iconOnclick() { + async iconOnclick(): Promise { if (this.avPlayerController.isPlaying) { this.avPlayerController.pauseVideo(); this.avPlayerController.setIsPlaying(false); @@ -604,7 +604,7 @@ export struct VideoPlayer { this.trackThicknessSize = CommonConstants.TRACK_SIZE_MIN; let context: Context = AppStorage.get('context')!; try { - let windowClass = await window.getLastWindow(context); + let windowClass: window.Window = await window.getLastWindow(context); await windowClass.setWindowKeepScreenOn(false); } catch (err) { Logger.error(TAG, `iconOnclick isPlaying failed, err.code:${err.code}, err.message:${err.message}`); @@ -617,7 +617,7 @@ export struct VideoPlayer { this.isTimeDisplay = 0; this.trackThicknessSize = CommonConstants.TRACK_SIZE_MIN; } else { - let intervalFlag = setInterval(async () => { + let intervalFlag: number = setInterval(async () => { if (this.avPlayerController.isReady === true) { this.avPlayerController.playVideo(); this.avPlayerController.setIsPlaying(true); @@ -627,9 +627,9 @@ export struct VideoPlayer { } }, CommonConstants.TIMER_INTERVAL); } - let context = this.getUIContext().getHostContext() as Context; + let context: Context = this.getUIContext().getHostContext() as Context; try { - let windowClass = await window.getLastWindow(context); + let windowClass: window.Window = await window.getLastWindow(context); await windowClass.setWindowKeepScreenOn(true); } catch (err) { Logger.error(TAG, `iconOnclick failed, err.code:${err.code}, err.message:${err.message}`); diff --git a/VideoPlayerSample/entry/src/main/ets/view/VideoDetails.ets b/VideoPlayerSample/entry/src/main/ets/view/VideoDetails.ets index ea87fc01..e820b6c1 100644 --- a/VideoPlayerSample/entry/src/main/ets/view/VideoDetails.ets +++ b/VideoPlayerSample/entry/src/main/ets/view/VideoDetails.ets @@ -25,7 +25,7 @@ export struct VideoDetails { * @param isAdd */ private changeLikeCount(isAdd: boolean) { - let likeCountNum = Number(this.item.likeCount); + let likeCountNum: number = Number(this.item.likeCount); if (isAdd) { likeCountNum++; } else { diff --git a/VideoPlayerSample/entry/src/main/ets/view/VideoSide.ets b/VideoPlayerSample/entry/src/main/ets/view/VideoSide.ets index 33d23c5d..c6137bbb 100644 --- a/VideoPlayerSample/entry/src/main/ets/view/VideoSide.ets +++ b/VideoPlayerSample/entry/src/main/ets/view/VideoSide.ets @@ -26,7 +26,7 @@ export struct RightSide { * @param isAdd */ private changeLikeCount(isAdd: boolean) { - let likeCountNum = Number(this.item.likeCount); + let likeCountNum: number = Number(this.item.likeCount); if (isAdd) { likeCountNum++; } else { -- Gitee