'use static'
/*
* Copyright (c) 2026 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @file A component which support applications to show moving photo data
* @kit MediaLibraryKit
*/
import photoAccessHelper from './@ohos.file.photoAccessHelper';
import media from './@ohos.multimedia.media';
import { CommonMethod, ComponentBuilder, CustomBuilder, ImageFit, ImageAIOptions } from '@ohos.arkui.component';
/**
* Defines the moving photo view options.
*
* @interface MovingPhotoViewOptions
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
export declare interface MovingPhotoViewOptions {
/**
* moving photo data.
*
* @type { photoAccessHelper.MovingPhoto }
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
movingPhoto: photoAccessHelper.MovingPhoto;
/**
* controller of MovingPhotoView.
*
* @type { ?MovingPhotoViewController }
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
controller?: MovingPhotoViewController;
/**
* image ai options of MovingPhotoView.
*
* @type { ?ImageAIOptions }
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
imageAIOptions?: ImageAIOptions;
/**
* format of MovingPhotoView.
*
* @type { ?PixelMapFormat }
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @systemapi
* @stagemodelonly
* @since 26.0.0 static
*/
movingPhotoFormat?: PixelMapFormat;
/**
* range mode of MovingPhotoView.
*
* @type { ?DynamicRangeMode }
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @systemapi
* @stagemodelonly
* @since 26.0.0 static
*/
dynamicRangeMode?: DynamicRangeMode;
/**
* the watermask of the cover photo whether to contain during movingphoto playback
*
* @type { ?boolean }
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @systemapi
* @stagemodelonly
* @since 26.0.0 static
*/
playWithMask?: boolean;
}
/**
* function that moving photo view media events callback.
*
* @typedef { function }
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
declare type MovingPhotoViewEventCallback = () => void;
/**
* Defines the moving photo view attribute functions.
*
* @extends CommonMethod
* @interface MovingPhotoViewAttribute
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
export declare interface MovingPhotoViewAttribute extends CommonMethod {
/**
* Called when judging whether the video is muted.
*
* @param { boolean } isMuted
* @returns { MovingPhotoViewAttribute }
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
muted(isMuted: boolean): MovingPhotoViewAttribute;
/**
* Called when determining the zoom type of the view.
*
* @param { ImageFit } value
* @returns { MovingPhotoViewAttribute }
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
objectFit(value: ImageFit): MovingPhotoViewAttribute;
/**
* Called when the image load completed.
*
* @param { MovingPhotoViewEventCallback } callback
* @returns { MovingPhotoViewAttribute }
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
onComplete(callback: MovingPhotoViewEventCallback): MovingPhotoViewAttribute;
/**
* Called when the video is played.
*
* @param { MovingPhotoViewEventCallback } callback
* @returns { MovingPhotoViewAttribute }
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
onStart(callback: MovingPhotoViewEventCallback): MovingPhotoViewAttribute;
/**
* Called when the video playback stopped.
*
* @param { MovingPhotoViewEventCallback } callback
* @returns { MovingPhotoViewAttribute }
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
onStop(callback: MovingPhotoViewEventCallback): MovingPhotoViewAttribute;
/**
* Called when the video playback paused.
*
* @param { MovingPhotoViewEventCallback } callback
* @returns { MovingPhotoViewAttribute }
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
onPause(callback: MovingPhotoViewEventCallback): MovingPhotoViewAttribute;
/**
* Called when the video playback ends.
*
* @param { MovingPhotoViewEventCallback } callback
* @returns { MovingPhotoViewAttribute }
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
onFinish(callback: MovingPhotoViewEventCallback): MovingPhotoViewAttribute;
/**
* Called when playback fails.
*
* @param { MovingPhotoViewEventCallback } callback
* @returns { MovingPhotoViewAttribute }
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
onError(callback: MovingPhotoViewEventCallback): MovingPhotoViewAttribute;
/**
* Called when playback prepared.
*
* @param { MovingPhotoViewEventCallback } callback
* @returns { MovingPhotoViewAttribute }
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
onPrepared(callback: MovingPhotoViewEventCallback): MovingPhotoViewAttribute;
/**
* Sets automatic play period, If not set, the moving photo plays in the full video duration.
* If set, the moving photo plays in the automatic play period.
*
* @param { double } startTime - video plays start time
* @param { double } endTime - video plays end time
* @returns { MovingPhotoViewAttribute }
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
autoPlayPeriod(startTime: double, endTime: double): MovingPhotoViewAttribute;
/**
* Sets whether to allow automatic play. If the value is true, the moving photo starts
* automatic after the resource is loaded.
*
* @param { boolean } isAutoPlay - Whether to automatic play
* @returns { MovingPhotoViewAttribute }
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
autoPlay(isAutoPlay: boolean): MovingPhotoViewAttribute;
/**
* Sets whether to allow repeat play. If the value is true, the moving photo plays
* repeat after the resource is loaded.
*
* @param { boolean } isRepeatPlay - Whether to repeat play
* @returns { MovingPhotoViewAttribute }
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
repeatPlay(isRepeatPlay: boolean): MovingPhotoViewAttribute;
/**
* Sets whether to enable moving photo analyzer. If the value is true, the moving photo can
* be analyzed by AI.
*
* @param { boolean } enabled - whether to enable moving photo analyzer
* @returns { MovingPhotoViewAttribute }
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
enableAnalyzer(enabled: boolean): MovingPhotoViewAttribute;
/**
* Sets playback strategy.
*
* @param { media.PlaybackStrategy } strategy - playback strategy
* @returns { MovingPhotoViewAttribute }
* @throws { BusinessError } 202 - Non-system applications are not allowed to use system APIs.
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @systemapi
* @stagemodelonly
* @since 26.0.0 static
*/
setPlaybackStrategy(strategy: media.PlaybackStrategy): MovingPhotoViewAttribute;
}
/**
* Defines the MovingPhotoView controller.
*
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
export declare class MovingPhotoViewController {
/**
* constructor.
*
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
constructor();
/**
* Start play moving photo.
*
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
startPlayback(): void;
/**
* Stop play moving photo.
*
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
stopPlayback(): void;
/**
* refresh moving photo data
*
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 static
*/
refreshMovingPhoto(): void;
/**
* Pause moving photo and show current frame, start playing from the current frame when
* playing again
*
* @throws { BusinessError } 202 - Non-system applications are not allowed to use system APIs.
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @systemapi
* @stagemodelonly
* @since 26.0.0 static
*/
pausePlayback(): void;
/**
* Reset moving photo playback options as default.
*
* @throws { BusinessError } 202 - Non-system applications are not allowed to use system APIs.
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @systemapi
* @stagemodelonly
* @since 26.0.0 static
*/
reset(): void;
/**
* Restart to play the video with current options.
*
* @throws { BusinessError } 202 - Non-system applications are not allowed to use system APIs.
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @systemapi
* @stagemodelonly
* @since 26.0.0 static
*/
restart(): void;
/**
* Enable or disable the zoom transition effect and can be set during initialization
*
* @param { boolean } enabled - Whether to enable the transition effect
* @throws { BusinessError } 202 - Non-system applications are not allowed to use system APIs.
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @systemapi
* @stagemodelonly
* @since 26.0.0 static
*/
enableTransition(enabled: boolean): void;
/**
* Set moving photo playback period
*
* @param { double } startTime - video playback start time
* @param { double } endTime - video playback end time
* @throws { BusinessError } 202 - Non-system applications are not allowed to use system APIs.
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @systemapi
* @stagemodelonly
* @since 26.0.0 static
*/
setPlaybackPeriod(startTime: double, endTime: double): void;
/**
* Dynamically refresh the autoplay property, which will force to play after
* moving photo is initialized
*
* @param { boolean } enabled - Whether to auto play
* @throws { BusinessError } 202 - Non-system applications are not allowed to use system APIs.
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @systemapi
* @stagemodelonly
* @since 26.0.0 static
*/
enableAutoPlay(enabled: boolean): void;
/**
* Notify the component to execute the picture transition animation.
*
* @throws { BusinessError } 202 - Non-system applications are not allowed to use system APIs.
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @systemapi
* @stagemodelonly
* @since 26.0.0 static
*/
notifyMovingPhotoTransition(): void;
}
/**
* Dynamic range mode of moving photo.
*
* @enum { number }
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @systemapi
* @stagemodelonly
* @since 26.0.0 static
*/
export declare enum DynamicRangeMode {
/**
* Restrict the image content to dynamic range to the standard range
*
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @systemapi
* @stagemodelonly
* @since 26.0.0 static
*/
STANDARD = 2,
/**
* Allow image content to use some extended range
*
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @systemapi
* @stagemodelonly
* @since 26.0.0 static
*/
CONSTRAINT = 1,
/**
* Allow image content to use an unrestricted extended range
*
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @systemapi
* @stagemodelonly
* @since 26.0.0 static
*/
HIGH = 0
}
/**
* Enumerates pixel map formats.
*
* @enum { number }
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @systemapi
* @stagemodelonly
* @since 26.0.0 static
*/
export declare enum PixelMapFormat {
/**
* Indicates that the storage order is to store Y first and then V U alternately each occupies 8 bits
* and are stored from the higher-order to the lower-order bits.
*
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @systemapi
* @stagemodelonly
* @since 26.0.0 static
*/
NV21 = 2,
/**
* Indicates that the storage order is to store Y first and then U V alternately each occupies 10 bits
* and are stored from the higher-order to the lower-order bits.
*
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @systemapi
* @stagemodelonly
* @since 26.0.0 static
*/
YCBCR_P010 = 4,
/**
* Indicates that each pixel is stored on 32 bits. Each pixel contains 4 components:
* R(10bits), G(10bits), B(10bits), A(2bits) and are stored from the higher-order to the lower-order bits.
*
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @systemapi
* @stagemodelonly
* @since 26.0.0 static
*/
RGBA_1010102 = 3,
/**
* Indicates that each pixel is stored on 32 bits.
* Each pixel contains 4 components:B(8bits), G(8bits), R(8bits), A(8bits)
* and are stored from the higher-order to the lower-order bits.
*
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @systemapi
* @stagemodelonly
* @since 26.0.0 static
*/
RGBA_8888 = 1,
/**
* Indicates that the storage order is to store Y first and then V U alternately each occupies 10 bits
* and are stored from the higher-order to the lower-order bits.
*
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @systemapi
* @stagemodelonly
* @since 26.0.0 static
*/
YCRCB_P010 = 5,
/**
* Indicates an unknown format.
*
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @systemapi
* @stagemodelonly
* @since 26.0.0 static
*/
UNKNOWN = 0
}
/**
* Defines the MovingPhotoView component.
*
* @param { MovingPhotoViewOptions } options - MovingPhotoView option.
* @param { CustomBuilder } [content_] - container
* @returns { MovingPhotoViewAttribute } The attribute of the movingPhotoView.
* @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
* @stagemodelonly
* @since 26.0.0 staticonly
*/
@ComponentBuilder
export declare function MovingPhotoView(
options: MovingPhotoViewOptions,
content_?: CustomBuilder,
): MovingPhotoViewAttribute;