/* * Copyright (C) 2021 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 * @kit MediaKit */ import { ErrorCallback, AsyncCallback, Callback } from './@ohos.base'; import audio from "./@ohos.multimedia.audio"; import type image from './@ohos.multimedia.image'; import type { SoundPool as _SoundPool } from './multimedia/soundPool'; import type { PlayParameters as _PlayParameters } from './multimedia/soundPool'; import type drm from './@ohos.multimedia.drm'; /** * @namespace media * @since 6 */ /** * @namespace media * @atomicservice * @since 11 */ declare namespace media { /** * Creates an AVPlayer instance. * @param { AsyncCallback } callback - used to return AVPlayer instance if the operation is successful; returns null otherwise. * @throws { BusinessError } 5400101 - No memory. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Creates an AVPlayer instance. * @param { AsyncCallback } callback - used to return AVPlayer instance if the operation is successful; returns null otherwise. * @throws { BusinessError } 5400101 - No memory. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ function createAVPlayer(callback: AsyncCallback): void; /** * Creates an AVPlayer instance. * @returns { Promise } A Promise instance used to return AVPlayer instance if the operation is successful; returns null otherwise. * @throws { BusinessError } 5400101 - No memory. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Creates an AVPlayer instance. * @returns { Promise } A Promise instance used to return AVPlayer instance if the operation is successful; returns null otherwise. * @throws { BusinessError } 5400101 - No memory. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ function createAVPlayer(): Promise; /** * Creates an AVRecorder instance. * @param { AsyncCallback } callback - used to return AVRecorder instance if the operation is successful; returns null otherwise. * @throws { BusinessError } 5400101 - No memory. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ function createAVRecorder(callback: AsyncCallback): void; /** * Creates an AVRecorder instance. * @returns { Promise } A Promise instance used to return AVRecorder instance if the operation is successful; returns null otherwise. * @throws { BusinessError } 5400101 - No memory. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ function createAVRecorder(): Promise; /** * Creates an AudioPlayer instance. * @returns { AudioPlayer } Returns an AudioPlayer instance if the operation is successful; returns null otherwise. * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media#createAVPlayer */ function createAudioPlayer(): AudioPlayer; /** * Creates an AudioRecorder instance. * @returns { AudioRecorder } Returns an AudioRecorder instance if the operation is successful; returns null otherwise. * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media#createAVRecorder */ function createAudioRecorder(): AudioRecorder; /** * Creates an VideoPlayer instance. * @param { AsyncCallback } callback - used to return AudioPlayer instance if the operation is successful; returns null otherwise. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media#createAVPlayer */ function createVideoPlayer(callback: AsyncCallback): void; /** * Creates an VideoPlayer instance. * @returns { Promise } A Promise instance used to return VideoPlayer instance if the operation is successful; returns null otherwise. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media#createAVPlayer */ function createVideoPlayer(): Promise; /** * The maintenance of this interface has been stopped since version api 9. Please use AVRecorder * Creates an VideoRecorder instance. * @param { AsyncCallback } callback - used to return AudioPlayer instance if the operation is successful; returns null otherwise. * @throws { BusinessError } 5400101 - No memory. Return by callback. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ function createVideoRecorder(callback: AsyncCallback): void; /** * The maintenance of this interface has been stopped since version api 9. Please use AVRecorder * Creates an VideoRecorder instance. * @returns { Promise } A Promise instance used to return VideoRecorder instance if the operation is successful; returns null otherwise. * @throws { BusinessError } 5400101 - No memory. Return by promise. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ function createVideoRecorder(): Promise; /** * Creates a soundPool instance. * * @param {number} maxStreams The maximum number of simultaneous streams for this soundPool instance * @param {audio.AudioRendererInfo} audioRenderInfo Audio renderer information * @param {AsyncCallback} callback Callback used to return soundPool instance if the operation is successful; returns null otherwise. * @throws { BusinessError } 5400101 - No memory. Return by callback. * @syscap SystemCapability.Multimedia.Media.SoundPool * @since 10 */ function createSoundPool( maxStreams: number, audioRenderInfo: audio.AudioRendererInfo, callback: AsyncCallback ): void; /** * Creates a soundPool instance. * * @param {number} maxStreams The maximum number of simultaneous streams for this soundPool instance * @param {audio.AudioRendererInfo} audioRenderInfo Audio renderer information * @returns {Promise} A Promise instance used to return SoundPool instance if the operation is successful; returns null otherwise. * @throws { BusinessError } 5400101 - No memory. Return by promise. * @syscap SystemCapability.Multimedia.Media.SoundPool * @since 10 */ function createSoundPool(maxStreams: number, audioRenderInfo: audio.AudioRendererInfo): Promise; /** * Manages and plays sound. Before calling an SoundPool method, you must use createSoundPool() * to create an SoundPool instance. * * @syscap SystemCapability.Multimedia.Media.SoundPool * @since 10 */ type SoundPool = _SoundPool; /** * Describes play parameters. * * @syscap SystemCapability.Multimedia.Media.SoundPool * @since 10 */ type PlayParameters = _PlayParameters; /** * Enumerates state change reason. * * @enum { number } * @syscap SystemCapability.Multimedia.Media.Core * @since 9 */ /** * Enumerates state change reason. * * @enum { number } * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ enum StateChangeReason { /** * State changed by user operation. * @syscap SystemCapability.Multimedia.Media.Core * @since 9 */ /** * State changed by user operation. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ USER = 1, /** * State changed by background action. * @syscap SystemCapability.Multimedia.Media.Core * @since 9 */ /** * State changed by background action. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ BACKGROUND = 2, } /** * Creates an AVMetadataExtractor instance. * @returns { Promise } A Promise instance used to return AVMetadataExtractor instance * if the operation is successful; returns null otherwise. * @throws { BusinessError } 5400101 - No memory. Returned by promise. * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ function createAVMetadataExtractor(): Promise; /** * Creates an AVMetadataExtractor instance. * @param { AsyncCallback } callback - Callback used to return AVMetadataExtractor instance * if the operation is successful; returns null otherwise. * @throws { BusinessError } 5400101 - No memory. Returned by callback. * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ function createAVMetadataExtractor(callback: AsyncCallback): void; /** * Creates an AVImageGenerator instance. * @returns { Promise } A Promise instance used to return AVImageGenerator instance * if the operation is successful; returns null otherwise. * @throws { BusinessError } 5400101 - No memory. Returned by promise. * @syscap SystemCapability.Multimedia.Media.AVImageGenerator * @systemapi * @since 11 */ function createAVImageGenerator(): Promise; /** * Creates an AVImageGenerator instance. * @param { AsyncCallback } callback - Callback used to return AVImageGenerator instance * if the operation is successful; returns null otherwise. * @throws { BusinessError } 5400101 - No memory. Returned by callback. * @syscap SystemCapability.Multimedia.Media.AVImageGenerator * @systemapi * @since 11 */ function createAVImageGenerator(callback: AsyncCallback): void; /** * Fetch media meta data or audio art picture from source. Before calling an AVMetadataExtractor method, * you must use createAVMetadataExtractor() to create an AVMetadataExtractor instance. * @typedef AVMetadataExtractor * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ interface AVMetadataExtractor { /** * Media file descriptor. * @type { ?AVFileDescriptor } * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ fdSrc ?: AVFileDescriptor; /** * DataSource descriptor. * @type { ?AVDataSrcDescriptor } * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ dataSrc ?: AVDataSrcDescriptor; /** * It will extract the resource to fetch media meta data info. * @param { AsyncCallback } callback - A callback instance used to return when fetchMetadata completed. * @throws { BusinessError } 5400102 - Operation not allowed. Returned by callback. * @throws { BusinessError } 5400106 - Unsupported format. Returned by callback. * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ fetchMetadata(callback: AsyncCallback): void; /** * It will extract the resource to fetch media meta data info. * @returns { Promise } A Promise instance used to return when fetchMetadata completed. * @throws { BusinessError } 5400102 - Operation not allowed. Returned by promise. * @throws { BusinessError } 5400106 - Unsupported format. Returned by promise. * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ fetchMetadata(): Promise; /** * It will extract the audio resource to fetch an album cover. * @param { AsyncCallback } callback - A callback instance used * to return when fetchAlbumCover completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by callback. * @throws { BusinessError } 5400106 - Unsupported format. Returned by callback. * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ fetchAlbumCover(callback: AsyncCallback): void; /** * It will extract the audio resource to fetch an album cover. * @returns { Promise } A Promise instance used to return when fetchAlbumCover completed. * @throws { BusinessError } 5400102 - Operation not allowed. Returned by promise. * @throws { BusinessError } 5400106 - Unsupported format. Returned by promise. * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ fetchAlbumCover(): Promise; /** * Release resources used for AVMetadataExtractor. * @param { AsyncCallback } callback - A callback instance used to return when release completed. * @throws { BusinessError } 5400102 - Operation not allowed. Returned by callback. * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ release(callback: AsyncCallback): void; /** * Release resources used for AVMetadataExtractor. * @returns { Promise } A Promise instance used to return when release completed. * @throws { BusinessError } 5400102 - Operation not allowed. Returned by promise. * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ release(): Promise; } /** * Provides the container definition for media meta data. * @typedef AVMetadata * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ interface AVMetadata { /** * The metadata to retrieve the information about the album title * of the media source. * @type { ?string } * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ album?: string; /** * The metadata to retrieve the information about the performer or * artist associated with the media source. * @type { ?string } * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ albumArtist?: string; /** * The metadata to retrieve the information about the artist of * the media source. * @type { ?string } * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ artist?: string; /** * The metadata to retrieve the information about the author of * the media source. * @type { ?string } * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ author?: string; /** * The metadata to retrieve the information about the created time of * the media source. * @type { ?string } * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ dateTime?: string; /** * The metadata to retrieve the information about the created or modified time * with the specific date format of the media source. * @type { ?string } * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ dateTimeFormat?: string; /** * The metadata to retrieve the information about the composer of * the media source. * @type { ?string } * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ composer?: string; /** * The metadata to retrieve the playback duration of the media source. * @type { ?string } * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ duration?: string; /** * The metadata to retrieve the content type or genre of the data * source. * @type { ?string } * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ genre?: string; /** * If this value exists the media contains audio content. * @type { ?string } * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ hasAudio?: string; /** * If this value exists the media contains video content. * @type { ?string } * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ hasVideo?: string; /** * The metadata to retrieve the mime type of the media source. Some * example mime types include: "video/mp4", "audio/mp4", "audio/amr-wb", * @type { ?string } * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ mimeType?: string; /** * The metadata to retrieve the number of tracks, such as audio, video, * text, in the media source, such as a mp4 or 3gpp file. * @type { ?string } * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ trackCount?: string; /** * It is the audio sample rate, if available. * @type { ?string } * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ sampleRate?: string; /** * The metadata to retrieve the media source title. * @type { ?string } * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ title?: string; /** * If the media contains video, this key retrieves its height. * @type { ?string } * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ videoHeight?: string; /** * If the media contains video, this key retrieves its width. * @type { ?string } * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ videoWidth?: string; /** * The metadata to retrieve the information about the video * orientation. * @type { ?string } * @syscap SystemCapability.Multimedia.Media.AVMetadataExtractor * @since 11 */ videoOrientation?: string; } /** * Generate an image from a video resource with the specific time. Before calling an AVImageGenerator method, * you must use createAVImageGenerator() to create an AVImageGenerator instance. * @typedef AVImageGenerator * @syscap SystemCapability.Multimedia.Media.AVImageGenerator * @systemapi * @since 11 */ interface AVImageGenerator { /** * Media file descriptor. * @type { ?AVFileDescriptor } * @syscap SystemCapability.Multimedia.Media.AVImageGenerator * @systemapi * @since 11 */ fdSrc ?: AVFileDescriptor; /** * It will fetch a picture at @timeUs from the given video resource. * @param { number } timeUs - The time expected to fetch picture from the video resource. * The unit is microsecond(us). * @param { AVImageQueryOptions } options - The time options about the relationship * between the given timeUs and a key frame, see @AVImageQueryOptions . * @param { PixelMapParams } param - The output pixel map format params, see @PixelMapParams . * @param { AsyncCallback } callback - A callback instance used * to return when fetchFrameByTime completed. * @throws { BusinessError } 5400102 - Operation not allowed. Returned by callback. * @throws { BusinessError } 5400106 - Unsupported format. Returned by callback. * @syscap SystemCapability.Multimedia.Media.AVImageGenerator * @systemapi * @since 11 */ fetchFrameByTime(timeUs: number, options: AVImageQueryOptions, param: PixelMapParams, callback: AsyncCallback): void; /** * It will decode the given video resource. Then fetch a picture * at @timeUs according the given @options and @param . * @param { number } timeUs - The time expected to fetch picture from the video resource. * The unit is microsecond(us). * @param { AVImageQueryOptions } options - The time options about the relationship * between the given timeUs and a key frame, see @AVImageQueryOptions . * @param { PixelMapParams } param - The output pixel map format params, see @PixelMapParams . * @returns { Promise } A Promise instance used to return the pixel map * when fetchFrameByTime completed. * @throws { BusinessError } 5400102 - Operation not allowed. Returned by promise. * @throws { BusinessError } 5400106 - Unsupported format. Returned by promise. * @syscap SystemCapability.Multimedia.Media.AVImageGenerator * @systemapi * @since 11 */ fetchFrameByTime(timeUs: number, options: AVImageQueryOptions, param: PixelMapParams): Promise; /** * Release resources used for AVImageGenerator. * @param { AsyncCallback } callback - A callback instance used to return when release completed. * @throws { BusinessError } 5400102 - Operation not allowed. Returned by callback. * @syscap SystemCapability.Multimedia.Media.AVImageGenerator * @systemapi * @since 11 */ release(callback: AsyncCallback): void; /** * Release resources used for AVImageGenerator. * @returns { Promise } A Promise instance used to return when release completed. * @throws { BusinessError } 5400102 - Operation not allowed. Returned by promise. * @syscap SystemCapability.Multimedia.Media.AVImageGenerator * @systemapi * @since 11 */ release(): Promise; } /** * Enumerates options about the relationship between the given timeUs and a key frame. * @enum { number } * @syscap SystemCapability.Multimedia.Media.AVImageGenerator * @systemapi * @since 11 */ enum AVImageQueryOptions { /** * This option is used to fetch a key frame from the given media * resource that is located right after or at the given time. * @syscap SystemCapability.Multimedia.Media.AVImageGenerator * @systemapi * @since 11 */ AV_IMAGE_QUERY_NEXT_SYNC, /** * This option is used to fetch a key frame from the given media * resource that is located right before or at the given time. * @syscap SystemCapability.Multimedia.Media.AVImageGenerator * @systemapi * @since 11 */ AV_IMAGE_QUERY_PREVIOUS_SYNC, /** * This option is used to fetch a key frame from the given media * resource that is located closest to or at the given time. * @syscap SystemCapability.Multimedia.Media.AVImageGenerator * @systemapi * @since 11 */ AV_IMAGE_QUERY_CLOSEST_SYNC, /** * This option is used to fetch a frame (maybe not keyframe) from * the given media resource that is located closest to or at the given time. * @syscap SystemCapability.Multimedia.Media.AVImageGenerator * @systemapi * @since 11 */ AV_IMAGE_QUERY_CLOSEST, } /** * Expected pixel map format for the fetched image from video resource. * @typedef PixelMapParams * @syscap SystemCapability.Multimedia.Media.AVImageGenerator * @systemapi * @since 11 */ interface PixelMapParams { /** * Expected pixelmap's width, -1 means to keep consistent with the * original dimensions of the given video resource. * @type { ?number } * @syscap SystemCapability.Multimedia.Media.AVImageGenerator * @systemapi * @since 11 */ width?: number; /** * Expected pixelmap's width, -1 means to keep consistent with the * original dimensions of the given video resource. * @type { ?number } * @syscap SystemCapability.Multimedia.Media.AVImageGenerator * @systemapi * @since 11 */ height?: number; /** * Expected pixelmap's color format, see {@link PixelFormat}. * @type { ?PixelFormat } * @syscap SystemCapability.Multimedia.Media.AVImageGenerator * @systemapi * @since 11 */ colorFormat?: PixelFormat; } /** * Enumerates options about the expected color options for the fetched image. * @enum { number } * @syscap SystemCapability.Multimedia.Media.AVImageGenerator * @systemapi * @since 11 */ enum PixelFormat { /** * RGB_565 options. * @syscap SystemCapability.Multimedia.Media.AVImageGenerator * @systemapi * @since 11 */ RGB_565 = 2, /** * RGBA_8888 options. * @syscap SystemCapability.Multimedia.Media.AVImageGenerator * @systemapi * @since 11 */ RGBA_8888 = 3, /** * RGB_888 options. * @syscap SystemCapability.Multimedia.Media.AVImageGenerator * @systemapi * @since 11 */ RGB_888 = 5, } /** * Enumerates ErrorCode types, return in BusinessError::code. * * @enum { number } * @syscap SystemCapability.Multimedia.Media.Core * @since 9 */ /** * Enumerates ErrorCode types, return in BusinessError::code. * * @enum { number } * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ enum AVErrorCode { /** * Operation success. * @syscap SystemCapability.Multimedia.Media.Core * @since 9 */ /** * Operation success. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ AVERR_OK = 0, /** * Permission denied. * @syscap SystemCapability.Multimedia.Media.Core * @since 9 */ /** * Permission denied. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ AVERR_NO_PERMISSION = 201, /** * Invalid parameter. * @syscap SystemCapability.Multimedia.Media.Core * @since 9 */ /** * Invalid parameter. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ AVERR_INVALID_PARAMETER = 401, /** * The api is not supported in the current version. * @syscap SystemCapability.Multimedia.Media.Core * @since 9 */ /** * The api is not supported in the current version. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ AVERR_UNSUPPORT_CAPABILITY = 801, /** * The system memory is insufficient or the number of services reaches the upper limit. * @syscap SystemCapability.Multimedia.Media.Core * @since 9 */ /** * The system memory is insufficient or the number of services reaches the upper limit. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ AVERR_NO_MEMORY = 5400101, /** * Current status does not allow or do not have permission to perform this operation. * @syscap SystemCapability.Multimedia.Media.Core * @since 9 */ /** * Current status does not allow or do not have permission to perform this operation. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ AVERR_OPERATE_NOT_PERMIT = 5400102, /** * Data flow exception information. * @syscap SystemCapability.Multimedia.Media.Core * @since 9 */ /** * Data flow exception information. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ AVERR_IO = 5400103, /** * System or network response timeout. * @syscap SystemCapability.Multimedia.Media.Core * @since 9 */ /** * System or network response timeout. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ AVERR_TIMEOUT = 5400104, /** * Service process died. * @syscap SystemCapability.Multimedia.Media.Core * @since 9 */ /** * Service process died. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ AVERR_SERVICE_DIED = 5400105, /** * Unsupported media format. * @syscap SystemCapability.Multimedia.Media.Core * @since 9 */ /** * Unsupported media format. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ AVERR_UNSUPPORT_FORMAT = 5400106, /** * Audio interrupted. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ AVERR_AUDIO_INTERRUPTED = 5400107, } /** * Describes AVPlayer states. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Describes AVPlayer states. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ type AVPlayerState = 'idle' | 'initialized' | 'prepared' | 'playing' | 'paused' | 'completed' | 'stopped' | 'released' | 'error'; /** * Manages and plays media. Before calling an AVPlayer method, you must use createAVPlayer() * to create an AVPlayer instance. * * @typedef AVPlayer * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Manages and plays media. Before calling an AVPlayer method, you must use createAVPlayer() * to create an AVPlayer instance. * * @typedef AVPlayer * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ interface AVPlayer { /** * Prepare audio/video playback, it will request resource for playing. * @param { AsyncCallback } callback - instance used to return when prepare completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by callback. * @throws { BusinessError } 5400106 - Unsupport format. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Prepare audio/video playback, it will request resource for playing. * @param { AsyncCallback } callback - instance used to return when prepare completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by callback. * @throws { BusinessError } 5400106 - Unsupport format. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ prepare(callback: AsyncCallback): void; /** * Prepare audio/video playback, it will request resource for playing. * @returns { Promise } A Promise instance used to return when prepare completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by promise. * @throws { BusinessError } 5400106 - Unsupport format. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Prepare audio/video playback, it will request resource for playing. * @returns { Promise } A Promise instance used to return when prepare completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by promise. * @throws { BusinessError } 5400106 - Unsupport format. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ prepare(): Promise; /** * Play audio/video playback. * @param { AsyncCallback } callback - instance used to return when play completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Play audio/video playback. * @param { AsyncCallback } callback - instance used to return when play completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ play(callback: AsyncCallback): void; /** * Play audio/video playback. * @returns { Promise } A Promise instance used to return when play completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Play audio/video playback. * @returns { Promise } A Promise instance used to return when play completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ play(): Promise; /** * Pause audio/video playback. * @param { AsyncCallback } callback - instance used to return when pause completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Pause audio/video playback. * @param { AsyncCallback } callback - instance used to return when pause completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ pause(callback: AsyncCallback): void; /** * Pause audio/video playback. * @returns { Promise } A Promise instance used to return when pause completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Pause audio/video playback. * @returns { Promise } A Promise instance used to return when pause completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ pause(): Promise; /** * Stop audio/video playback. * @param { AsyncCallback } callback - instance used to return when stop completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Stop audio/video playback. * @param { AsyncCallback } callback - instance used to return when stop completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ stop(callback: AsyncCallback): void; /** * Stop audio/video playback. * @returns { Promise } A Promise instance used to return when stop completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Stop audio/video playback. * @returns { Promise } A Promise instance used to return when stop completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ stop(): Promise; /** * Reset AVPlayer, it will to idle state and can set src again. * @param { AsyncCallback } callback - instance used to return when reset completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Reset AVPlayer, it will to idle state and can set src again. * @param { AsyncCallback } callback - instance used to return when reset completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ reset(callback: AsyncCallback): void; /** * Reset AVPlayer, it will to idle state and can set src again. * @returns { Promise } A Promise instance used to return when reset completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Reset AVPlayer, it will to idle state and can set src again. * @returns { Promise } A Promise instance used to return when reset completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ reset(): Promise; /** * Releases resources used for AVPlayer. * @param { AsyncCallback } callback - instance used to return when release completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Releases resources used for AVPlayer. * @param { AsyncCallback } callback - instance used to return when release completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ release(callback: AsyncCallback): void; /** * Releases resources used for AVPlayer. * @returns { Promise } A Promise instance used to return when release completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Releases resources used for AVPlayer. * @returns { Promise } A Promise instance used to return when release completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ release(): Promise; /** * Jumps to the specified playback position. * @param { number } timeMs - Playback position to jump, should be in [0, duration]. * @param { SeekMode } mode - See @SeekMode . * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Jumps to the specified playback position. * @param { number } timeMs - Playback position to jump, should be in [0, duration]. * @param { SeekMode } mode - See @SeekMode . * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ seek(timeMs: number, mode?: SeekMode): void; /** * Sets the volume. * @param { number } volume - Relative volume. The value ranges from 0.00 to 1.00. The value 1 indicates the maximum volume (100%). * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ setVolume(volume: number): void; /** * Get all track infos in MediaDescription, should be called after data loaded callback. * @param { AsyncCallback> } callback - Async callback return track info in MediaDescription. * @throws { BusinessError } 5400102 - Operation not allowed. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Get all track infos in MediaDescription, should be called after data loaded callback. * @param { AsyncCallback> } callback - Async callback return track info in MediaDescription. * @throws { BusinessError } 5400102 - Operation not allowed. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ getTrackDescription(callback: AsyncCallback>): void; /** * Get all track infos in MediaDescription, should be called after data loaded callback. * @returns { Promise> } A Promise instance used to return the track info in MediaDescription. * @throws { BusinessError } 5400102 - Operation not allowed. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Get all track infos in MediaDescription, should be called after data loaded callback. * @returns { Promise> } A Promise instance used to return the track info in MediaDescription. * @throws { BusinessError } 5400102 - Operation not allowed. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ getTrackDescription(): Promise>; /** * Media URI. Mainstream media formats are supported. * Network:http://xxx * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Media URI. Mainstream media formats are supported. * Network:http://xxx * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ url?: string; /** * Media file descriptor. Mainstream media formats are supported. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Media file descriptor. Mainstream media formats are supported. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ fdSrc?: AVFileDescriptor; /** * DataSource descriptor. Supports mainstream media formats. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 10 */ /** * DataSource descriptor. Supports mainstream media formats. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ dataSrc?: AVDataSrcDescriptor; /** * Whether to loop media playback. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ loop: boolean; /** * Describes audio interrupt mode, refer to {@link #audio.InterruptMode}. If it is not * set, the default mode will be used. Set it before calling the {@link #play()} in the * first time in order for the interrupt mode to become effective thereafter. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ audioInterruptMode?: audio.InterruptMode; /** * Describes audio renderer info, refer to {@link #audio.AudioRendererInfo}. Set it before * calling the {@link #prepare()} in the first time in order for the audio renderer info to * become effective thereafter. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 10 */ audioRendererInfo?: audio.AudioRendererInfo; /** * Obtains the current audio effect mode, refer to {@link #audio.AudioEffectMode}. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 10 */ audioEffectMode ?: audio.AudioEffectMode; /** * Current playback position. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ readonly currentTime: number; /** * Playback duration, When the data source does not support seek, it returns - 1, such as a live broadcast scenario. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Playback duration, When the data source does not support seek, it returns - 1, such as a live broadcast scenario. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ readonly duration: number; /** * Playback state. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ readonly state: AVPlayerState; /** * Video player will use this id get a surface instance. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Video player will use this id get a surface instance. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ surfaceId?: string; /** * Video width, valid after prepared. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ readonly width: number; /** * Video height, valid after prepared. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ readonly height: number; /** * Video scale type. By default, the {@link #VIDEO_SCALE_TYPE_FIT} will be used, for more * information, refer to {@link #VideoScaleType} . * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ videoScaleType?: VideoScaleType; /** * Set payback speed. * @param { PlaybackSpeed } speed - playback speed, see @PlaybackSpeed . * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ setSpeed(speed: PlaybackSpeed): void; /** * select a specified bitrate to playback, only valid for HLS protocol network stream. By default, the * player will select the appropriate bitrate according to the network connection speed. The * available bitrate list reported by {@link #on('availableBitrates')}. Set it to select * a specified bitrate. If the specified bitrate is not in the list of available bitrate, the player * will select the minimal and closest one from the available bitrate list. * @param { number } bitrate - the playback bitrate must be expressed in bits per second. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ setBitrate(bitrate: number): void; /** * Set decryption session to codec module. * @param { drm.MediaKeySession } mediaKeySession - Handle of MediaKeySession to decrypt encrypted media. * @param { boolean } secureVideoPath - Secure video path required or not. * @throws { BusinessError } 401 - The parameter check failed. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 11 */ setDecryptionConfig(mediaKeySession: drm.MediaKeySession, secureVideoPath: boolean): void; /** * Get media key system info from media source. * @returns { Array } MediaKeySystemInfo with PSSH. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 11 */ getMediaKeySystemInfos(): Array; /** * Register listens for mediaKeySystemInfoUpdate events. * @param { 'mediaKeySystemInfoUpdate' } type - Type of the event to listen for. * @param { function } callback - Callback used to listen for the mediaKeySystemInfoUpdate event. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 11 */ on(type: 'mediaKeySystemInfoUpdate', callback: (mediaKeySystemInfo: Array) => void): void; /** * Unregister listens for mediaKeySystemInfoUpdate events. * @param { 'mediaKeySystemInfoUpdate' } type - Type of the event to listen for. * @param { function } callback - Callback for event. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 11 */ off(type: 'mediaKeySystemInfoUpdate', callback?: (mediaKeySystemInfo: Array) => void): void; /** * Register listens for media playback stateChange event. * @param { 'stateChange' } type - Type of the playback event to listen for. * @param { function } callback - Callback used to listen for the playback stateChange event. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Register listens for media playback stateChange event. * @param { 'stateChange' } type - Type of the playback event to listen for. * @param { function } callback - Callback used to listen for the playback stateChange event. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ on(type: 'stateChange', callback: (state: AVPlayerState, reason: StateChangeReason) => void): void; /** * Unregister listens for media playback stateChange event. * @param { 'stateChange' } type - Type of the playback event to listen for. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Unregister listens for media playback stateChange event. * @param { 'stateChange' } type - Type of the playback event to listen for. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ off(type: 'stateChange'): void; /** * Register listens for media playback volumeChange event. * @param { 'volumeChange' } type - Type of the playback event to listen for. * @param { Callback } callback - Callback used to listen for the playback volume event. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ on(type: 'volumeChange', callback: Callback): void; /** * Unregister listens for media playback volumeChange event. * @param { 'volumeChange' } type - Type of the playback event to listen for. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ off(type: 'volumeChange'): void; /** * Register listens for media playback endOfStream event. * @param { 'endOfStream' } type - Type of the playback event to listen for. * @param { Callback } callback - Callback used to listen for the playback end of stream. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ on(type: 'endOfStream', callback: Callback): void; /** * Unregister listens for media playback endOfStream event. * @param { 'endOfStream' } type - Type of the playback event to listen for. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ off(type: 'endOfStream'): void; /** * Register listens for media playback seekDone event. * @param { 'seekDone' } type - Type of the playback event to listen for. * @param { Callback } callback - Callback used to listen for the playback seekDone event. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Register listens for media playback seekDone event. * @param { 'seekDone' } type - Type of the playback event to listen for. * @param { Callback } callback - Callback used to listen for the playback seekDone event. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ on(type: 'seekDone', callback: Callback): void; /** * Unregister listens for media playback seekDone event. * @param { 'seekDone' } type - Type of the playback event to listen for. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Unregister listens for media playback seekDone event. * @param { 'seekDone' } type - Type of the playback event to listen for. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ off(type: 'seekDone'): void; /** * Register listens for media playback speedDone event. * @param { 'speedDone' } type - Type of the playback event to listen for. * @param { Callback } callback - Callback used to listen for the playback speedDone event. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ on(type: 'speedDone', callback: Callback): void; /** * Unregister listens for media playback speedDone event. * @param { 'speedDone' } type - Type of the playback event to listen for. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ off(type: 'speedDone'): void; /** * Register listens for media playback setBitrateDone event. * @param { 'bitrateDone' } type - Type of the playback event to listen for. * @param { Callback } callback - Callback used to listen for the playback setBitrateDone event. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ on(type: 'bitrateDone', callback: Callback): void; /** * Unregister listens for media playback setBitrateDone event. * @param { 'bitrateDone' } type - Type of the playback event to listen for. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ off(type: 'bitrateDone'): void; /** * Register listens for media playback timeUpdate event. * @param { 'timeUpdate' } type - Type of the playback event to listen for. * @param { Callback } callback - Callback used to listen for the playback timeUpdate event. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Register listens for media playback timeUpdate event. * @param { 'timeUpdate' } type - Type of the playback event to listen for. * @param { Callback } callback - Callback used to listen for the playback timeUpdate event. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ on(type: 'timeUpdate', callback: Callback): void; /** * Unregister listens for media playback timeUpdate event. * @param { 'timeUpdate' } type - Type of the playback event to listen for. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Unregister listens for media playback timeUpdate event. * @param { 'timeUpdate' } type - Type of the playback event to listen for. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ off(type: 'timeUpdate'): void; /** * Register listens for media playback durationUpdate event. * @param { 'durationUpdate' } type - Type of the playback event to listen for. * @param { Callback } callback - Callback used to listen for the playback durationUpdate event. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ on(type: 'durationUpdate', callback: Callback): void; /** * Unregister listens for media playback durationUpdate event. * @param { 'durationUpdate' } type - Type of the playback event to listen for. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ off(type: 'durationUpdate'): void; /** * Register listens for video playback buffering events. * @param { 'bufferingUpdate' } type - Type of the playback buffering update event to listen for. * @param { function } callback - Callback used to listen for the buffering update event, * return BufferingInfoType and the value. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void; /** * Unregister listens for video playback buffering events. * @param { 'bufferingUpdate' } type - Type of the playback buffering update event to listen for. * return BufferingInfoType and the value. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ off(type: 'bufferingUpdate'): void; /** * Register listens for start render video frame events. * @param { 'startRenderFrame' } type - Type of the playback event to listen for. * @param { Callback } callback - Callback used to listen for the playback event return . * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ on(type: 'startRenderFrame', callback: Callback): void; /** * Unregister listens for start render video frame events. * @param { 'startRenderFrame' } type - Type of the playback event to listen for. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ off(type: 'startRenderFrame'): void; /** * Register listens for video size change event. * @param { 'videoSizeChange' } type - Type of the playback event to listen for. * @param { function } callback - Callback used to listen for the playback event return video size. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ on(type: 'videoSizeChange', callback: (width: number, height: number) => void): void; /** * Unregister listens for video size change event. * @param { 'videoSizeChange' } type - Type of the playback event to listen for. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ off(type: 'videoSizeChange'): void; /** * Register listens for audio interrupt event, refer to {@link #audio.InterruptEvent} * @param { 'audioInterrupt' } type - Type of the playback event to listen for. * @param { function } callback - Callback used to listen for the playback event return audio interrupt info. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ on(type: 'audioInterrupt', callback: (info: audio.InterruptEvent) => void): void; /** * Unregister listens for audio interrupt event, refer to {@link #audio.InterruptEvent} * @param { 'audioInterrupt' } type - Type of the playback event to listen for. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ off(type: 'audioInterrupt'): void; /** * Register listens for available bitrate list collect completed events for HLS protocol stream playback. * This event will be reported after the {@link #prepare} called. * @param { 'availableBitrates' } type - Type of the playback event to listen for. * @param { function } callback - Callback used to listen for the playback event return available bitrate list. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ on(type: 'availableBitrates', callback: (bitrates: Array) => void): void; /** * Unregister listens for available bitrate list collect completed events for HLS protocol stream playback. * This event will be reported after the {@link #prepare} called. * @param { 'availableBitrates' } type - Type of the playback event to listen for. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ off(type: 'availableBitrates'): void; /** * Register listens for playback error events. * @param { 'error' } type - Type of the playback error event to listen for. * @param { ErrorCallback } callback - Callback used to listen for the playback error event. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 401 - The parameter check failed. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 5400101 - No memory. * @throws { BusinessError } 5400102 - Operation not allowed. * @throws { BusinessError } 5400103 - I/O error. * @throws { BusinessError } 5400104 - Time out. * @throws { BusinessError } 5400105 - Service died. * @throws { BusinessError } 5400106 - Unsupport format. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Register listens for playback error events. * @param { 'error' } type - Type of the playback error event to listen for. * @param { ErrorCallback } callback - Callback used to listen for the playback error event. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 401 - The parameter check failed. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 5400101 - No memory. * @throws { BusinessError } 5400102 - Operation not allowed. * @throws { BusinessError } 5400103 - I/O error. * @throws { BusinessError } 5400104 - Time out. * @throws { BusinessError } 5400105 - Service died. * @throws { BusinessError } 5400106 - Unsupport format. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ on(type: 'error', callback: ErrorCallback): void; /** * Unregister listens for playback error events. * @param { 'error' } type - Type of the playback error event to listen for. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 9 */ /** * Unregister listens for playback error events. * @param { 'error' } type - Type of the playback error event to listen for. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ off(type: 'error'): void; /** * Subscribes output device change event callback. * The event is triggered when output device change for this stream. * @param { 'audioOutputDeviceChangeWithInfo' } type - Type of the event to listen for. * @param { Callback } callback - Callback used to listen device change event. * @throws { BusinessError } 401 - The parameter check failed. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 11 */ on(type: 'audioOutputDeviceChangeWithInfo', callback: Callback): void; /** * Unsubscribes output device change event callback. * @param { 'audioOutputDeviceChangeWithInfo' } type - Type of the event to listen for. * @param { Callback } callback - Callback used to listen device change event. * @throws { BusinessError } 401 - The parameter check failed. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 11 */ off(type: 'audioOutputDeviceChangeWithInfo', callback?: Callback): void; } /** * Enumerates ErrorCode types, return in BusinessError::code * * @enum { number } * @syscap SystemCapability.Multimedia.Media.Core * @since 8 * @deprecated since 11 * @useinstead ohos.multimedia.media/media.AVErrorCode */ enum MediaErrorCode { /** * operation success. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 * @deprecated since 11 * @useinstead ohos.multimedia.media/media.AVErrorCode#AVERR_OK */ MSERR_OK = 0, /** * malloc or new memory failed. maybe system have no memory. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 * @deprecated since 11 * @useinstead ohos.multimedia.media/media.AVErrorCode#AVERR_NO_MEMORY */ MSERR_NO_MEMORY = 1, /** * no permission for the operation. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 * @deprecated since 11 * @useinstead ohos.multimedia.media/media.AVErrorCode#AVERR_OPERATE_NOT_PERMIT */ MSERR_OPERATION_NOT_PERMIT = 2, /** * invalid argument. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 * @deprecated since 11 * @useinstead ohos.multimedia.media/media.AVErrorCode#AVERR_INVALID_PARAMETER */ MSERR_INVALID_VAL = 3, /** * an I/O error occurred. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 * @deprecated since 11 * @useinstead ohos.multimedia.media/media.AVErrorCode#AVERR_IO */ MSERR_IO = 4, /** * operation time out. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 * @deprecated since 11 * @useinstead ohos.multimedia.media/media.AVErrorCode#AVERR_TIMEOUT */ MSERR_TIMEOUT = 5, /** * unknown error. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 * @deprecated since 11 * @useinstead ohos.multimedia.media/media.AVErrorCode#AVERR_INVALID_PARAMETER */ MSERR_UNKNOWN = 6, /** * media service died. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 * @deprecated since 11 * @useinstead ohos.multimedia.media/media.AVErrorCode#AVERR_SERVICE_DIED */ MSERR_SERVICE_DIED = 7, /** * operation is not permit in current state. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 * @deprecated since 11 * @useinstead ohos.multimedia.media/media.AVErrorCode#AVERR_INVALID_PARAMETER */ MSERR_INVALID_STATE = 8, /** * operation is not supported in current version. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 * @deprecated since 11 * @useinstead ohos.multimedia.media/media.AVErrorCode#AVERR_UNSUPPORT_CAPABILITY */ MSERR_UNSUPPORTED = 9, } /** * Enumerates buffering info type, for network playback. * * @enum { number } * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ enum BufferingInfoType { /** * begin to buffering * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ BUFFERING_START = 1, /** * end to buffering * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ BUFFERING_END = 2, /** * buffering percent * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ BUFFERING_PERCENT = 3, /** * cached duration in milliseconds * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ CACHED_DURATION = 4, } /** * Media file descriptor. The caller needs to ensure that the fd is valid and * the offset and length are correct. * * @typedef AVFileDescriptor * @syscap SystemCapability.Multimedia.Media.Core * @since 9 */ /** * Media file descriptor. The caller needs to ensure that the fd is valid and * the offset and length are correct. * * @typedef AVFileDescriptor * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ interface AVFileDescriptor { /** * The file descriptor of audio or video source from file system. The caller * is responsible to close the file descriptor. * @syscap SystemCapability.Multimedia.Media.Core * @since 9 */ /** * The file descriptor of audio or video source from file system. The caller * is responsible to close the file descriptor. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ fd: number /** * The offset into the file where the data to be read, in bytes. By default, * the offset is zero. * @syscap SystemCapability.Multimedia.Media.Core * @since 9 */ /** * The offset into the file where the data to be read, in bytes. By default, * the offset is zero. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ offset?: number /** * The length in bytes of the data to be read. By default, the length is the * rest of bytes in the file from the offset. * @syscap SystemCapability.Multimedia.Media.Core * @since 9 */ /** * The length in bytes of the data to be read. By default, the length is the * rest of bytes in the file from the offset. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ length?: number } /** * DataSource descriptor. The caller needs to ensure that the fileSize and * callback is valid. * * @typedef AVDataSrcDescriptor * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 10 */ /** * DataSource descriptor. The caller needs to ensure that the fileSize and * callback is valid. * * @typedef AVDataSrcDescriptor * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ interface AVDataSrcDescriptor { /** * Size of the file, -1 means the file size is unknown, in this case, * seek and setSpeed can't be executed, loop can't be set, and can't replay. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 10 */ /** * Size of the file, -1 means the file size is unknown, in this case, * seek and setSpeed can't be executed, loop can't be set, and can't replay. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ fileSize: number; /** * Callback function implemented by users, which is used to fill data. * buffer - The buffer need to fill. * length - The stream length player want to get. * pos - The stream position player want get start, and is an optional parameter. * When fileSize set to -1, this parameter is not used. * Returns length of the data to be filled. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @since 10 */ /** * Callback function implemented by users, which is used to fill data. * buffer - The buffer need to fill. * length - The stream length player want to get. * pos - The stream position player want get start, and is an optional parameter. * When fileSize set to -1, this parameter is not used. * Returns length of the data to be filled. * @syscap SystemCapability.Multimedia.Media.AVPlayer * @atomicservice * @since 11 */ callback: (buffer: ArrayBuffer, length: number, pos?: number) => number; } /** * Describes audio playback states. * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayerState */ type AudioState = 'idle' | 'playing' | 'paused' | 'stopped' | 'error'; /** * Manages and plays audio. Before calling an AudioPlayer method, you must use createAudioPlayer() * to create an AudioPlayer instance. * * @typedef AudioPlayer * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer */ interface AudioPlayer { /** * Starts audio playback. * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#play */ play(): void; /** * Pauses audio playback. * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#pause */ pause(): void; /** * Stops audio playback. * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#stop */ stop(): void; /** * Resets audio playback. * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 7 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#reset */ reset(): void; /** * Jumps to the specified playback position. * @param { number } timeMs - Playback position to jump * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#seek */ seek(timeMs: number): void; /** * Sets the volume. * @param { number } vol - Relative volume. The value ranges from 0.00 to 1.00. The value 1 indicates the maximum volume (100%). * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#setVolume */ setVolume(vol: number): void; /** * Releases resources used for audio playback. * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#release */ release(): void; /** * Get all track infos in MediaDescription, should be called after data loaded callback. * @param { AsyncCallback> } callback - async callback return track info in MediaDescription. * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#getTrackDescription */ getTrackDescription(callback: AsyncCallback>): void; /** * Get all track infos in MediaDescription, should be called after data loaded callback. * @returns { Promise> } A Promise instance used to return the track info in MediaDescription. * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#getTrackDescription */ getTrackDescription(): Promise>; /** * Listens for audio playback buffering events. * @param { 'bufferingUpdate' } type - Type of the playback buffering update event to listen for. * @param { function } callback - Callback used to listen for the buffering update event, * return BufferingInfoType and the value. * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#event:bufferingUpdate */ on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void; /** * Audio media URI. Mainstream audio formats are supported. * local:fd://XXX, file://XXX. network:http://xxx * @permission ohos.permission.READ_MEDIA or ohos.permission.INTERNET * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#url */ src: string; /** * Audio file descriptor. Mainstream audio formats are supported. * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 9 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#fdSrc */ fdSrc: AVFileDescriptor; /** * Whether to loop audio playback. The value true means to loop playback. * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#loop */ loop: boolean; /** * Describes audio interrupt mode, refer to {@link #audio.InterruptMode}. If it is not * set, the default mode will be used. Set it before calling the {@link #play()} in the * first time in order for the interrupt mode to become effective thereafter. * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 9 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#audioInterruptMode */ audioInterruptMode?: audio.InterruptMode; /** * Current playback position. * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#currentTime */ readonly currentTime: number; /** * Playback duration, When the data source does not support seek, it returns - 1, such as a live broadcast scenario. * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#duration */ readonly duration: number; /** * Playback state. * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#state */ readonly state: AudioState; /** * Listens for audio playback events. * @param { 'play' | 'pause' | 'stop' | 'reset' | 'dataLoad' | 'finish' | 'volumeChange' } type - Type of the playback event to listen for. * @param { function } callback - Callback used to listen for the playback event. * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#event:stateChange */ on(type: 'play' | 'pause' | 'stop' | 'reset' | 'dataLoad' | 'finish' | 'volumeChange', callback: () => void): void; /** * Listens for audio playback events. * @param { 'timeUpdate' } type - Type of the playback event to listen for. * @param { Callback } callback - Callback used to listen for the playback event. * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#event:timeUpdate */ on(type: 'timeUpdate', callback: Callback): void; /** * Listens for audio interrupt event, refer to {@link #audio.InterruptEvent} * @param { 'audioInterrupt' } type - Type of the playback event to listen for. * @param { function } callback - Callback used to listen for the playback event return audio interrupt info. * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 9 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#event:audioInterrupt */ on(type: 'audioInterrupt', callback: (info: audio.InterruptEvent) => void): void; /** * Listens for playback error events. * @param { 'error' } type - Type of the playback error event to listen for. * @param { ErrorCallback } callback - Callback used to listen for the playback error event. * @syscap SystemCapability.Multimedia.Media.AudioPlayer * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#event:error */ on(type: 'error', callback: ErrorCallback): void; } /** * Describes media recorder states. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ type AVRecorderState = 'idle' | 'prepared' | 'started' | 'paused' | 'stopped' | 'released' | 'error'; /** * Manages and record audio/video. Before calling an AVRecorder method, you must use createAVRecorder() * to create an AVRecorder instance. * * @typedef AVRecorder * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ interface AVRecorder { /** * Prepares for recording. * @permission ohos.permission.MICROPHONE * @param { AVRecorderConfig } config - Recording parameters. * @param { AsyncCallback } callback - A callback instance used to return when prepare completed. * @throws { BusinessError } 201 - Permission denied. Return by callback. * @throws { BusinessError } 401 - The parameter check failed. Return by callback. * @throws { BusinessError } 5400102 - Operate not permit. Return by callback. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ prepare(config: AVRecorderConfig, callback: AsyncCallback): void; /** * Prepares for recording. * @permission ohos.permission.MICROPHONE * @param { AVRecorderConfig } config - Recording parameters. * @returns { Promise } A Promise instance used to return when prepare completed. * @throws { BusinessError } 201 - Permission denied. Return by promise. * @throws { BusinessError } 401 - The parameter check failed. Return by promise. * @throws { BusinessError } 5400102 - Operate not permit. Return by promise. * @throws { BusinessError } 5400105 - Service died. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ prepare(config: AVRecorderConfig): Promise; /** * Get AVRecorderConfig.it must be called after prepare. * @param { AsyncCallback } callback - Callback used to return the input config in AVRecorderConfig. * @throws { BusinessError } 5400102 - Operate not permit. Return by callback. * @throws { BusinessError } 5400103 - IO error. Return by callback. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ getAVRecorderConfig(callback: AsyncCallback): void; /** * Get AVRecorderConfig.it must be called after prepare. * @returns { Promise } A Promise instance used to return the input config in AVRecorderConfig. * @throws { BusinessError } 5400102 - Operate not permit. Return by promise. * @throws { BusinessError } 5400103 - IO error. Return by promise. * @throws { BusinessError } 5400105 - Service died. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ getAVRecorderConfig(): Promise; /** * Get input surface.it must be called between prepare completed and start. * @param { AsyncCallback } callback - Callback used to return the input surface id in string. * @throws { BusinessError } 5400102 - Operate not permit. Return by callback. * @throws { BusinessError } 5400103 - IO error. Return by callback. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ getInputSurface(callback: AsyncCallback): void; /** * Get input surface. it must be called between prepare completed and start. * @returns { Promise } A Promise instance used to return the input surface id in string. * @throws { BusinessError } 5400102 - Operate not permit. Return by promise. * @throws { BusinessError } 5400103 - IO error. Return by promise. * @throws { BusinessError } 5400105 - Service died. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ getInputSurface(): Promise; /** * Start AVRecorder, it will to started state. * @param { AsyncCallback } callback - A callback instance used to return when start completed. * @throws { BusinessError } 5400102 - Operate not permit. Return by callback. * @throws { BusinessError } 5400103 - IO error. Return by callback. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ start(callback: AsyncCallback): void; /** * Start AVRecorder, it will to started state. * @returns { Promise } A Promise instance used to return when start completed. * @throws { BusinessError } 5400102 - Operate not permit. Return by promise. * @throws { BusinessError } 5400103 - IO error. Return by promise. * @throws { BusinessError } 5400105 - Service died. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ start(): Promise; /** * Start AVRecorder, it will to paused state. * @param { AsyncCallback } callback - A callback instance used to return when pause completed. * @throws { BusinessError } 5400102 - Operate not permit. Return by callback. * @throws { BusinessError } 5400103 - IO error. Return by callback. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ pause(callback: AsyncCallback): void; /** * Start AVRecorder, it will to paused state. * @returns { Promise } A Promise instance used to return when pause completed. * @throws { BusinessError } 5400102 - Operate not permit. Return by promise. * @throws { BusinessError } 5400103 - IO error. Return by promise. * @throws { BusinessError } 5400105 - Service died. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ pause(): Promise; /** * Resume AVRecorder, it will to started state. * @param { AsyncCallback } callback - A callback instance used to return when resume completed. * @throws { BusinessError } 5400102 - Operate not permit. Return by callback. * @throws { BusinessError } 5400103 - IO error. Return by callback. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ resume(callback: AsyncCallback): void; /** * Resume AVRecorder, it will to started state. * @returns { Promise } A Promise instance used to return when resume completed. * @throws { BusinessError } 5400102 - Operate not permit. Return by promise. * @throws { BusinessError } 5400103 - IO error. Return by promise. * @throws { BusinessError } 5400105 - Service died. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ resume(): Promise; /** * Stop AVRecorder, it will to stopped state. * @param { AsyncCallback } callback - A callback instance used to return when stop completed. * @throws { BusinessError } 5400102 - Operate not permit. Return by callback. * @throws { BusinessError } 5400103 - IO error. Return by callback. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ stop(callback: AsyncCallback): void; /** * Stop AVRecorder, it will to stopped state. * @returns { Promise } A Promise instance used to return when stop completed. * @throws { BusinessError } 5400102 - Operate not permit. Return by promise. * @throws { BusinessError } 5400103 - IO error. Return by promise. * @throws { BusinessError } 5400105 - Service died. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ stop(): Promise; /** * Reset AVRecorder, it will to idle state. * @param { AsyncCallback } callback - A callback instance used to return when reset completed. * @throws { BusinessError } 5400103 - IO error. Return by callback. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ reset(callback: AsyncCallback): void; /** * Reset AVRecorder, it will to idle state. * @returns { Promise } A Promise instance used to return when reset completed. * @throws { BusinessError } 5400103 - IO error. Return by promise. * @throws { BusinessError } 5400105 - Service died. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ reset(): Promise; /** * Releases resources used for AVRecorder, it will to released state. * @param { AsyncCallback } callback - A callback instance used to return when release completed. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ release(callback: AsyncCallback): void; /** * Releases resources used for AVRecorder, it will to released state. * @returns { Promise } A Promise instance used to return when release completed. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ release(): Promise; /** * Get AudioCapturer info from current AVRecorder. * @param { AsyncCallback } callback - A callback used to return AudioCapturerChangeInfo. * @throws { BusinessError } 5400102 - Operation not allowed. * @throws { BusinessError } 5400103 - I/O error. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ getCurrentAudioCapturerInfo(callback: AsyncCallback): void; /** * Get AudioCapturer info from current AVRecorder. * @returns { Promise } A Promise instance used to return AudioCapturerChangeInfo. * @throws { BusinessError } 5400102 - Operation not allowed. * @throws { BusinessError } 5400103 - I/O error. * @throws { BusinessError } 5400105 - Service died. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ getCurrentAudioCapturerInfo(): Promise; /** * Get max audio capturer amplitude from current AVRecorder. * @param { AsyncCallback } callback - A callback used to return max Amplitude. * @throws { BusinessError } 5400102 - Operation not allowed. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ getAudioCapturerMaxAmplitude(callback: AsyncCallback): void; /** * Get max audio capturer amplitude from current AVRecorder. * @returns { Promise } A Promise instance used to return max Amplitude. * @throws { BusinessError } 5400102 - Operation not allowed. * @throws { BusinessError } 5400105 - Service died. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ getAudioCapturerMaxAmplitude(): Promise; /** * Get available encoder and encoder info for AVRecorder. * @param { AsyncCallback> } callback - A callback used to return available encoder info. * @throws { BusinessError } 5400102 - Operation not allowed. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ getAvailableEncoder(callback: AsyncCallback>): void; /** * Get available encoder and encoder info for AVRecorder. * @returns { Promise> } A Promise instance used to return available encoder info. * @throws { BusinessError } 5400102 - Operation not allowed. * @throws { BusinessError } 5400105 - Service died. Return by promise. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ getAvailableEncoder(): Promise>; /** * Recorder state. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ readonly state: AVRecorderState; /** * Listens for recording audioCapturerChange events. * @param { 'audioCapturerChange' } type - Type of the audioCapturerChange event to listen for. * @param { Callback } callback - Callback used to listen device change event. * @throws { BusinessError } 401 - The parameter check failed. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ on(type: 'audioCapturerChange', callback: Callback): void; /** * Listens for recording stateChange events. * @param { 'stateChange' } type - Type of the recording event to listen for. * @param { function } callback - Callback used to listen for the recorder stateChange event. * @throws { BusinessError } 5400103 - IO error. Return by callback. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ on(type: 'stateChange', callback: (state: AVRecorderState, reason: StateChangeReason) => void): void; /** * Listens for recording error events. * @param { 'error' } type - Type of the recording error event to listen for. * @param { ErrorCallback } callback - Callback used to listen for the recorder error event. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 401 - The parameter check failed. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 5400101 - No memory. * @throws { BusinessError } 5400102 - Operation not allowed. * @throws { BusinessError } 5400103 - I/O error. * @throws { BusinessError } 5400104 - Time out. * @throws { BusinessError } 5400105 - Service died. * @throws { BusinessError } 5400106 - Unsupport format. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ /** * Listens for recording error events. * @param { 'error' } type - Type of the recording error event to listen for. * @param { ErrorCallback } callback - Callback used to listen for the recorder error event. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 401 - The parameter check failed. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 5400101 - No memory. * @throws { BusinessError } 5400102 - Operation not allowed. * @throws { BusinessError } 5400103 - I/O error. * @throws { BusinessError } 5400104 - Time out. * @throws { BusinessError } 5400105 - Service died. * @throws { BusinessError } 5400106 - Unsupport format. * @throws { BusinessError } 5400107 - Audio interrupted. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ on(type: 'error', callback: ErrorCallback): void; /** * Cancel Listens for recording stateChange events. * @param { 'stateChange' } type - Type of the recording stateChange event to listen for. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ off(type: 'stateChange'): void; /** * Cancel Listens for recording error events. * @param { 'error' } type - Type of the recording error event to listen for. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ off(type: 'error'): void; /** * Cancel Listens for recording audioCapturerChange events. * @param { 'audioCapturerChange' } type - Type of the audioCapturerChange event to listen for. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ off(type: 'audioCapturerChange'): void; } /** * Enumerates audio encoding formats, it will be deprecated after API8, use @CodecMimeType to replace. * * @enum { number } * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 8 * @useinstead ohos.multimedia.media/media.CodecMimeType */ enum AudioEncoder { /** * Default audio encoding format, which is AMR-NB. * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 8 */ DEFAULT = 0, /** * Indicates the AMR-NB audio encoding format. * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 8 */ AMR_NB = 1, /** * Indicates the AMR-WB audio encoding format. * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 8 */ AMR_WB = 2, /** * Advanced Audio Coding Low Complexity (AAC-LC). * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 8 */ AAC_LC = 3, /** * High-Efficiency Advanced Audio Coding (HE-AAC). * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 8 */ HE_AAC = 4 } /** * Enumerates audio output formats, it will be deprecated after API8, use @ContainerFormatType to replace. * * @enum { number } * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 8 * @useinstead ohos.multimedia.media/media.ContainerFormatType */ enum AudioOutputFormat { /** * Default audio output format, which is Moving Pictures Expert Group 4 (MPEG-4). * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 8 */ DEFAULT = 0, /** * Indicates the Moving Picture Experts Group-4 (MPEG4) media format. * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 8 */ MPEG_4 = 2, /** * Indicates the Adaptive Multi-Rate Narrowband (AMR-NB) media format. * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 8 */ AMR_NB = 3, /** * Indicates the Adaptive Multi-Rate Wideband (AMR-WB) media format. * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 8 */ AMR_WB = 4, /** * Audio Data Transport Stream (ADTS), a transmission stream format of Advanced Audio Coding (AAC) audio. * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 8 */ AAC_ADTS = 6 } /** * Provides the geographical location definitions for media resources. * * @typedef Location * @syscap SystemCapability.Multimedia.Media.Core * @since 6 */ interface Location { /** * Latitude. * @syscap SystemCapability.Multimedia.Media.Core * @since 6 */ latitude: number; /** * Longitude. * @syscap SystemCapability.Multimedia.Media.Core * @since 6 */ longitude: number; } /** * Provides the audio recorder configuration definitions. * * @typedef AudioRecorderConfig * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVRecorderConfig */ interface AudioRecorderConfig { /** * Audio encoding format. The default value is DEFAULT, it will be deprecated after API8. * use "audioEncoderMime" instead. * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 8 * @useinstead ohos.multimedia.media/media.AudioRecorderConfig.audioEncoderMime */ audioEncoder?: AudioEncoder; /** * Audio encoding bit rate. * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 9 */ audioEncodeBitRate?: number; /** * Audio sampling rate. * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 9 */ audioSampleRate?: number; /** * Number of audio channels. * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 9 */ numberOfChannels?: number; /** * Audio output format. The default value is DEFAULT, it will be deprecated after API8. * it will be replaced with "fileFormat". * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 8 * @useinstead ohos.multimedia.media/media.AudioRecorderConfig.fileFormat */ format?: AudioOutputFormat; /** * Audio output uri.support two kind of uri now. * format like: scheme + "://" + "context". * file: file://path * fd: fd://fd * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 9 */ uri: string; /** * Geographical location information. * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 9 */ location?: Location; /** * audio encoding format MIME. it used to replace audioEncoder. * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 8 * @deprecated since 9 */ audioEncoderMime?: CodecMimeType; /** * output file format. see @ContainerFormatType , it used to replace "format". * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 8 * @deprecated since 9 */ fileFormat?: ContainerFormatType; } /** * Manages and record audio. Before calling an AudioRecorder method, you must use createAudioRecorder() * to create an AudioRecorder instance. * * @typedef AudioRecorder * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVRecorder */ interface AudioRecorder { /** * Prepares for recording. * @permission ohos.permission.MICROPHONE * @param { AudioRecorderConfig } config - Recording parameters. * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVRecorder#prepare */ prepare(config: AudioRecorderConfig): void; /** * Starts audio recording. * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVRecorder#start */ start(): void; /** * Pauses audio recording. * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVRecorder#pause */ pause(): void; /** * Resumes audio recording. * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVRecorder#resume */ resume(): void; /** * Stops audio recording. * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVRecorder#stop */ stop(): void; /** * Releases resources used for audio recording. * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVRecorder#release */ release(): void; /** * Resets audio recording. * Before resetting audio recording, you must call stop() to stop recording. After audio recording is reset, * you must call prepare() to set the recording configurations for another recording. * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVRecorder#reset */ reset(): void; /** * Listens for audio recording events. * @param { 'prepare' | 'start' | 'pause' | 'resume' | 'stop' | 'release' | 'reset' } type - Type of the audio recording event to listen for. * @param { function } callback - Callback used to listen for the audio recording event. * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVRecorder#on */ on(type: 'prepare' | 'start' | 'pause' | 'resume' | 'stop' | 'release' | 'reset', callback: () => void): void; /** * Listens for audio recording error events. * @param { 'error' } type - Type of the audio recording error event to listen for. * @param { ErrorCallback } callback - Callback used to listen for the audio recording error event. * @syscap SystemCapability.Multimedia.Media.AudioRecorder * @since 6 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVRecorder#on */ on(type: 'error', callback: ErrorCallback): void; } /** * The maintenance of this interface has been stopped since version api 9. Please use AVRecorderState. * Describes video recorder states. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ type VideoRecordState = 'idle' | 'prepared' | 'playing' | 'paused' | 'stopped' | 'error'; /** * The maintenance of this interface has been stopped since version api 9. Please use AVRecorder. * Manages and record video. Before calling an VideoRecorder method, you must use createVideoRecorder() * to create an VideoRecorder instance. * * @typedef VideoRecorder * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ interface VideoRecorder { /** * Prepares for recording. * @permission ohos.permission.MICROPHONE * @param { VideoRecorderConfig } config - Recording parameters. * @param { AsyncCallback } callback - A callback instance used to return when prepare completed. * @throws { BusinessError } 201 - Permission denied. Return by callback. * @throws { BusinessError } 401 - The parameter check failed. Return by callback. * @throws { BusinessError } 5400102 - Operation not allowed. Return by callback. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ prepare(config: VideoRecorderConfig, callback: AsyncCallback): void; /** * Prepares for recording. * @permission ohos.permission.MICROPHONE * @param { VideoRecorderConfig } config - Recording parameters. * @returns { Promise } A Promise instance used to return when prepare completed. * @throws { BusinessError } 201 - Permission denied. Return by promise. * @throws { BusinessError } 401 - The parameter check failed. Return by promise. * @throws { BusinessError } 5400102 - Operation not allowed. Return by promise. * @throws { BusinessError } 5400105 - Service died. Return by promise. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ prepare(config: VideoRecorderConfig): Promise; /** * get input surface.it must be called between prepare completed and start. * @param { AsyncCallback } callback - Callback used to return the input surface id in string. * @throws { BusinessError } 5400102 - Operation not allowed. Return by callback. * @throws { BusinessError } 5400103 - I/O error. Return by callback. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ getInputSurface(callback: AsyncCallback): void; /** * get input surface. it must be called between prepare completed and start. * @returns { Promise } A Promise instance used to return the input surface id in string. * @throws { BusinessError } 5400102 - Operation not allowed. Return by promise. * @throws { BusinessError } 5400103 - I/O error. Return by promise. * @throws { BusinessError } 5400105 - Service died. Return by promise. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ getInputSurface(): Promise; /** * Starts video recording. * @param { AsyncCallback } callback - A callback instance used to return when start completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by callback. * @throws { BusinessError } 5400103 - I/O error. Return by callback. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ start(callback: AsyncCallback): void; /** * Starts video recording. * @returns { Promise } A Promise instance used to return when start completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by promise. * @throws { BusinessError } 5400103 - I/O error. Return by promise. * @throws { BusinessError } 5400105 - Service died. Return by promise. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ start(): Promise; /** * Pauses video recording. * @param { AsyncCallback } callback - A callback instance used to return when pause completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by callback. * @throws { BusinessError } 5400103 - I/O error. Return by callback. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ pause(callback: AsyncCallback): void; /** * Pauses video recording. * @returns { Promise } A Promise instance used to return when pause completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by promise. * @throws { BusinessError } 5400103 - I/O error. Return by promise. * @throws { BusinessError } 5400105 - Service died. Return by promise. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ pause(): Promise; /** * Resumes video recording. * @param { AsyncCallback } callback - A callback instance used to return when resume completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by callback. * @throws { BusinessError } 5400103 - I/O error. Return by callback. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ resume(callback: AsyncCallback): void; /** * Resumes video recording. * @returns { Promise } A Promise instance used to return when resume completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by promise. * @throws { BusinessError } 5400103 - I/O error. Return by promise. * @throws { BusinessError } 5400105 - Service died. Return by promise. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ resume(): Promise; /** * Stops video recording. * @param { AsyncCallback } callback A callback instance used to return when stop completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by callback. * @throws { BusinessError } 5400103 - I/O error. Return by callback. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ stop(callback: AsyncCallback): void; /** * Stops video recording. * @returns { Promise } A Promise instance used to return when stop completed. * @throws { BusinessError } 5400102 - Operation not allowed. Return by promise. * @throws { BusinessError } 5400103 - I/O error. Return by promise. * @throws { BusinessError } 5400105 - Service died. Return by promise. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ stop(): Promise; /** * Releases resources used for video recording. * @param { AsyncCallback } callback - A callback instance used to return when release completed. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ release(callback: AsyncCallback): void; /** * Releases resources used for video recording. * @returns { Promise } A Promise instance used to return when release completed. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ release(): Promise; /** * Resets video recording. * Before resetting video recording, you must call stop() to stop recording. After video recording is reset, * you must call prepare() to set the recording configurations for another recording. * @param { AsyncCallback } callback - A callback instance used to return when reset completed. * @throws { BusinessError } 5400103 - I/O error. Return by callback. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ reset(callback: AsyncCallback): void; /** * Resets video recording. * Before resetting video recording, you must call stop() to stop recording. After video recording is reset, * you must call prepare() to set the recording configurations for another recording. * @returns { Promise } A Promise instance used to return when reset completed. * @throws { BusinessError } 5400103 - I/O error. Return by promise. * @throws { BusinessError } 5400105 - Service died. Return by promise. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ reset(): Promise; /** * Listens for video recording error events. * @param { 'error' } type - Type of the video recording error event to listen for. * @param { ErrorCallback } callback - Callback used to listen for the video recording error event. * @throws { BusinessError } 5400103 - I/O error. Return by callback. * @throws { BusinessError } 5400105 - Service died. Return by callback. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ on(type: 'error', callback: ErrorCallback): void; /** * video recorder state. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ readonly state: VideoRecordState; } /** * Describes video playback states. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayerState */ type VideoPlayState = 'idle' | 'prepared' | 'playing' | 'paused' | 'stopped' | 'error'; /** * Enumerates playback speed. * * @enum { number } * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 */ enum PlaybackSpeed { /** * playback at 0.75x normal speed * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 */ SPEED_FORWARD_0_75_X = 0, /** * playback at normal speed * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 */ SPEED_FORWARD_1_00_X = 1, /** * playback at 1.25x normal speed * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 */ SPEED_FORWARD_1_25_X = 2, /** * playback at 1.75x normal speed * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 */ SPEED_FORWARD_1_75_X = 3, /** * playback at 2.0x normal speed * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 */ SPEED_FORWARD_2_00_X = 4, } /** * Manages and plays video. Before calling an video method, you must use createVideoPlayer() to create an VideoPlayer * instance. * * @typedef VideoPlayer * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer */ interface VideoPlayer { /** * Set display surface. * @param {string} surfaceId - surface id, video player will use this id get a surface instance. * @param { AsyncCallback } callback - A callback instance used to return when release output buffer completed. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#surfaceId */ setDisplaySurface(surfaceId: string, callback: AsyncCallback): void; /** * Set display surface. * @param {string} surfaceId - surface id, video player will use this id get a surface instance. * @returns { Promise } A Promise instance used to return when release output buffer completed. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#surfaceId */ setDisplaySurface(surfaceId: string): Promise; /** * Prepare video playback, it will request resource for playing. * @param { AsyncCallback } callback - A callback instance used to return when prepare completed. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#prepare */ prepare(callback: AsyncCallback): void; /** * Prepare video playback, it will request resource for playing. * @returns { Promise } A Promise instance used to return when prepare completed. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#prepare */ prepare(): Promise; /** * Starts video playback. * @param { AsyncCallback } callback - A callback instance used to return when start completed. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#play */ play(callback: AsyncCallback): void; /** * Starts video playback. * @returns { Promise } A Promise instance used to return when start completed. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#play */ play(): Promise; /** * Pauses video playback. * @param { AsyncCallback } callback - A callback instance used to return when pause completed. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#pause */ pause(callback: AsyncCallback): void; /** * Pauses video playback. * @returns { Promise } A Promise instance used to return when pause completed. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#pause */ pause(): Promise; /** * Stops video playback. * @param { AsyncCallback } callback - A callback instance used to return when stop completed. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#stop */ stop(callback: AsyncCallback): void; /** * Stops video playback. * @returns { Promise } A Promise instance used to return when stop completed. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#stop */ stop(): Promise; /** * Resets video playback, it will release the resource. * @param { AsyncCallback } callback - A callback instance used to return when reset completed. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#reset */ reset(callback: AsyncCallback): void; /** * Resets video playback, it will release the resource. * @returns { Promise } A Promise instance used to return when reset completed. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#reset */ reset(): Promise; /** * Jumps to the specified playback position by default SeekMode(SEEK_PREV_SYNC), * the performance may be not the best. * @param { number } timeMs - Playback position to jump * @param { AsyncCallback } callback - A callback instance used to return when seek completed * and return the seeking position result. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#seek */ seek(timeMs: number, callback: AsyncCallback): void; /** * Jumps to the specified playback position. * @param { number } timeMs - Playback position to jump * @param { SeekMode } mode - seek mode, see @SeekMode . * @param { AsyncCallback } callback - A callback instance used to return when seek completed * and return the seeking position result. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#seek */ seek(timeMs: number, mode: SeekMode, callback: AsyncCallback): void; /** * Jumps to the specified playback position. * @param { number } timeMs - Playback position to jump * @param { SeekMode } mode - seek mode, see @SeekMode . * @returns { Promise } A Promise instance used to return when seek completed * and return the seeking position result. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#seek */ seek(timeMs: number, mode?: SeekMode): Promise; /** * Sets the volume. * @param { number } vol - Relative volume. The value ranges from 0.00 to 1.00. The value 1 indicates the maximum volume (100%). * @param { AsyncCallback } callback - A callback instance used to return when set volume completed. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#setVolume */ setVolume(vol: number, callback: AsyncCallback): void; /** * Sets the volume. * @param { number } vol - Relative volume. The value ranges from 0.00 to 1.00. The value 1 indicates the maximum volume (100%). * @returns { Promise } A Promise instance used to return when set volume completed. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#setVolume */ setVolume(vol: number): Promise; /** * Releases resources used for video playback. * @param { AsyncCallback } callback - A callback instance used to return when release completed. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#release */ release(callback: AsyncCallback): void; /** * Releases resources used for video playback. * @returns { Promise } A Promise instance used to return when release completed. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#release */ release(): Promise; /** * Get all track infos in MediaDescription, should be called after data loaded callback. * @param { AsyncCallback> } callback - async callback return track info in MediaDescription. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#getTrackDescription */ getTrackDescription(callback: AsyncCallback>): void; /** * Get all track infos in MediaDescription, should be called after data loaded callback. * @returns { Promise> } A Promise instance used to return the track info in MediaDescription. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#getTrackDescription */ getTrackDescription(): Promise>; /** * media url. Mainstream video formats are supported. * local:fd://XXX, file://XXX. network:http://xxx * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#url */ url: string; /** * Video file descriptor. Mainstream video formats are supported. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 9 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#fdSrc */ fdSrc: AVFileDescriptor; /** * Whether to loop video playback. The value true means to loop playback. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#loop */ loop: boolean; /** * Current playback position. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#currentTime */ readonly currentTime: number; /** * Playback duration, if -1 means cannot seek. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#duration */ readonly duration: number; /** * Playback state. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#state */ readonly state: VideoPlayState; /** * video width, valid after prepared. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#width */ readonly width: number; /** * video height, valid after prepared. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#height */ readonly height: number; /** * Describes audio interrupt mode, refer to {@link #audio.InterruptMode}. If it is not * set, the default mode will be used. Set it before calling the {@link #play()} in the * first time in order for the interrupt mode to become effective thereafter. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 9 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#audioInterruptMode */ audioInterruptMode?: audio.InterruptMode; /** * video scale type. By default, the {@link #VIDEO_SCALE_TYPE_FIT} will be used, for more * information, refer to {@link #VideoScaleType} * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 9 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#videoScaleType */ videoScaleType?: VideoScaleType; /** * set payback speed. * @param { number } speed - playback speed, see @PlaybackSpeed . * @param { AsyncCallback } callback Callback used to return actually speed. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#setSpeed */ setSpeed(speed: number, callback: AsyncCallback): void; /** * set output surface. * @param { number } speed - playback speed, see @PlaybackSpeed . * @returns { Promise } A Promise instance used to return actually speed. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#setSpeed */ setSpeed(speed: number): Promise; /** * Listens for video playback completed events. * @param { 'playbackCompleted' } type - Type of the playback event to listen for. * @param { Callback } callback - Callback used to listen for the playback event return. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#event:stateChange */ on(type: 'playbackCompleted', callback: Callback): void; /** * Listens for video playback buffering events. * @param { 'bufferingUpdate' } type - Type of the playback buffering update event to listen for. * @param { function } callback - Callback used to listen for the buffering update event, * return BufferingInfoType and the value. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#event:bufferingUpdate */ on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void; /** * Listens for start render video frame events. * @param { 'startRenderFrame' } type - Type of the playback event to listen for. * @param { Callback } callback - Callback used to listen for the playback event return. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#event:startRenderFrame */ on(type: 'startRenderFrame', callback: Callback): void; /** * Listens for video size changed event. * @param { 'videoSizeChanged' } type - Type of the playback event to listen for. * @param { function } callback - Callback used to listen for the playback event return video size. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#event:videoSizeChange */ on(type: 'videoSizeChanged', callback: (width: number, height: number) => void): void; /** * Listens for audio interrupt event, refer to {@link #audio.InterruptEvent} * @param { 'audioInterrupt' } type - Type of the playback event to listen for. * @param { function } callback - Callback used to listen for the playback event return audio interrupt info. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 9 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#event:audioInterrupt */ on(type: 'audioInterrupt', callback: (info: audio.InterruptEvent) => void): void; /** * Listens for playback error events. * @param { 'error' } type - Type of the playback error event to listen for. * @param { ErrorCallback } callback - Callback used to listen for the playback error event. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 8 * @deprecated since 9 * @useinstead ohos.multimedia.media/media.AVPlayer#event:error */ on(type: 'error', callback: ErrorCallback): void; } /** * Enumerates video scale type. * * @enum { number } * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 9 */ enum VideoScaleType { /** * The content is stretched to the fit the display surface rendering area. When * the aspect ratio of the content is not same as the display surface, the aspect * of the content is not maintained. This is the default scale type. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 9 */ VIDEO_SCALE_TYPE_FIT = 0, /** * The content is stretched to the fit the display surface rendering area. When * the aspect ratio of the content is not the same as the display surface, content's * aspect ratio is maintained and the content is cropped to fit the display surface. * @syscap SystemCapability.Multimedia.Media.VideoPlayer * @since 9 */ VIDEO_SCALE_TYPE_FIT_CROP = 1, } /** * Enumerates container format type(The abbreviation for 'container format type' is CFT). * * @enum { number } * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ enum ContainerFormatType { /** * A video container format type mp4. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ CFT_MPEG_4 = 'mp4', /** * A audio container format type m4a. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ CFT_MPEG_4A = 'm4a', } /** * Enumerates media data type. * * @enum { number } * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ /** * Enumerates media data type. * * @enum { number } * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ enum MediaType { /** * track is audio. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ /** * track is audio. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ MEDIA_TYPE_AUD = 0, /** * track is video. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ /** * track is video. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ MEDIA_TYPE_VID = 1, } /** * Enumerates media description key. * * @enum { number } * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ /** * Enumerates media description key. * * @enum { number } * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ enum MediaDescriptionKey { /** * key for track index, value type is number. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ /** * key for track index, value type is number. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ MD_KEY_TRACK_INDEX = 'track_index', /** * key for track type, value type is number, see @MediaType. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ /** * key for track type, value type is number, see @MediaType. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ MD_KEY_TRACK_TYPE = 'track_type', /** * key for codec mime type, value type is string. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ /** * key for codec mime type, value type is string. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ MD_KEY_CODEC_MIME = 'codec_mime', /** * key for duration, value type is number. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ /** * key for duration, value type is number. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ MD_KEY_DURATION = 'duration', /** * key for bitrate, value type is number. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ /** * key for bitrate, value type is number. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ MD_KEY_BITRATE = 'bitrate', /** * key for video width, value type is number. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ /** * key for video width, value type is number. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ MD_KEY_WIDTH = 'width', /** * key for video height, value type is number. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ /** * key for video height, value type is number. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ MD_KEY_HEIGHT = 'height', /** * key for video frame rate, value type is number. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ /** * key for video frame rate, value type is number. * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ MD_KEY_FRAME_RATE = 'frame_rate', /** * key for audio channel count, value type is number * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ /** * key for audio channel count, value type is number * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ MD_KEY_AUD_CHANNEL_COUNT = 'channel_count', /** * key for audio sample rate, value type is number * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ /** * key for audio sample rate, value type is number * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ MD_KEY_AUD_SAMPLE_RATE = 'sample_rate', } /** * Provides the video recorder profile definitions. * * @typedef VideoRecorderProfile * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ interface VideoRecorderProfile { /** * Indicates the audio bit rate. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ readonly audioBitrate: number; /** * Indicates the number of audio channels. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ readonly audioChannels: number; /** * Indicates the audio encoding format. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ readonly audioCodec: CodecMimeType; /** * Indicates the audio sampling rate. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ readonly audioSampleRate: number; /** * Indicates the output file format. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ readonly fileFormat: ContainerFormatType; /** * Indicates the video bit rate. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ readonly videoBitrate: number; /** * Indicates the video encoding format. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ readonly videoCodec: CodecMimeType; /** * Indicates the video width. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ readonly videoFrameWidth: number; /** * Indicates the video height. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ readonly videoFrameHeight: number; /** * Indicates the video frame rate. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ readonly videoFrameRate: number; } /** * Enumerates audio source type for recorder. * * @enum { number } * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ enum AudioSourceType { /** * Default audio source type. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ AUDIO_SOURCE_TYPE_DEFAULT = 0, /** * Source type mic. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ AUDIO_SOURCE_TYPE_MIC = 1, } /** * Enumerates video source type for recorder. * * @enum { number } * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ enum VideoSourceType { /** * Surface raw data. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ VIDEO_SOURCE_TYPE_SURFACE_YUV = 0, /** * Surface ES data. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ VIDEO_SOURCE_TYPE_SURFACE_ES = 1, } /** * Provides the video recorder configuration definitions. * * @typedef VideoRecorderConfig * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ interface VideoRecorderConfig { /** * audio source type, details see @AudioSourceType . * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ audioSourceType?: AudioSourceType; /** * video source type, details see @VideoSourceType . * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ videoSourceType: VideoSourceType; /** * video recorder profile, can get by "getVideoRecorderProfile", details see @VideoRecorderProfile .= * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ profile: VideoRecorderProfile; /** * video output uri.support two kind of uri now. * format like: scheme + "://" + "context". * fd: fd://fd * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ url: string; /** * Sets the video rotation angle in output file, and for the file to playback. mp4 support. * the range of rotation angle should be {0, 90, 180, 270}, default is 0. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ rotation?: number; /** * geographical location information. * @syscap SystemCapability.Multimedia.Media.VideoRecorder * @systemapi * @since 9 */ location?: Location; } /** * Provides encoder info. * * @typedef EncoderInfo * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ interface EncoderInfo { /** * encoder format MIME * @type { CodecMimeType } * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ mimeType: CodecMimeType; /** * encoder type, audio or video * @type { string } * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ type: string; /** * audio or video encoder bitRate range * @type { ?Range } * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ bitRate?: Range; /** * video encoder frame rate range * @type { ?Range } * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ frameRate?: Range; /** * video encoder width range * @type { ?Range } * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ width?: Range; /** * video encoder height range * @type { ?Range } * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ height?: Range; /** * audio encoder channel range * @type { ?Range } * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ channels?: Range; /** * audio encoder sample rate collection * @type { ?Array } * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ sampleRate?: Array; } /** * Provides Range with lower and upper limit. * * @typedef Range * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ interface Range { /** * lower limit of the range * @type { number } * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ min: number; /** * upper limit of the range * @type { number } * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ max: number; } /** * Provides the media recorder profile definitions. * * @typedef AVRecorderProfile * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ interface AVRecorderProfile { /** * Indicates the audio bitrate. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ audioBitrate?: number; /** * Indicates the number of audio channels. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ audioChannels?: number; /** * Indicates the audio encoding format. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ audioCodec?: CodecMimeType; /** * Indicates the audio sampling rate. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ audioSampleRate?: number; /** * Indicates the output file format. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ fileFormat: ContainerFormatType; /** * Indicates the video bitrate. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ videoBitrate?: number; /** * Indicates the video encoding format. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ videoCodec?: CodecMimeType; /** * Indicates the video width. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ videoFrameWidth?: number; /** * Indicates the video height. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ videoFrameHeight?: number; /** * Indicates the video frame rate. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ videoFrameRate?: number; /** * Whether to record HDR video. * @type { ?boolean } * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 11 */ isHdr?: boolean; } /** * Provides the media recorder configuration definitions. * * @typedef AVRecorderConfig * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ interface AVRecorderConfig { /** * Audio source type, details see @AudioSourceType . * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ audioSourceType?: AudioSourceType; /** * Video source type, details see @VideoSourceType . * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ videoSourceType?: VideoSourceType; /** * Video recorder profile, details see @AVRecorderProfile . * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ profile: AVRecorderProfile; /** * File output uri, support a kind of uri now. * format like: "fd://" + "context". * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ url: string; /** * Sets the video rotation angle in output file, and for the file to playback, mp4 support * the range of rotation angle should be {0, 90, 180, 270}, default is 0. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ rotation?: number; /** * Geographical location information. * @syscap SystemCapability.Multimedia.Media.AVRecorder * @since 9 */ location?: Location; } /** * Provides the container definition for media description key-value pairs. * * @typedef MediaDescription * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ /** * Provides the container definition for media description key-value pairs. * * @typedef MediaDescription * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ interface MediaDescription { /** * key:value pair, key see @MediaDescriptionKey . * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ /** * key:value pair, key see @MediaDescriptionKey . * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ [key: string]: Object; } /** * Enumerates seek mode. * * @enum { number } * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ /** * Enumerates seek mode. * * @enum { number } * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ enum SeekMode { /** * seek to the next sync frame of the given timestamp * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ /** * seek to the next sync frame of the given timestamp * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ SEEK_NEXT_SYNC = 0, /** * seek to the previous sync frame of the given timestamp * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ /** * seek to the previous sync frame of the given timestamp * @syscap SystemCapability.Multimedia.Media.Core * @atomicservice * @since 11 */ SEEK_PREV_SYNC = 1, } /** * Enumerates Codec MIME types. * * @enum { string } * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ enum CodecMimeType { /** * H.263 codec MIME type. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ VIDEO_H263 = 'video/h263', /** * H.264 codec MIME type. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ VIDEO_AVC = 'video/avc', /** * MPEG2 codec MIME type. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ VIDEO_MPEG2 = 'video/mpeg2', /** * MPEG4 codec MIME type * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ VIDEO_MPEG4 = 'video/mp4v-es', /** * VP8 codec MIME type * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ VIDEO_VP8 = 'video/x-vnd.on2.vp8', /** * AAC codec MIME type. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ AUDIO_AAC = 'audio/mp4a-latm', /** * vorbis codec MIME type. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ AUDIO_VORBIS = 'audio/vorbis', /** * flac codec MIME type. * @syscap SystemCapability.Multimedia.Media.Core * @since 8 */ AUDIO_FLAC = 'audio/flac', /** * H.265 codec MIME type. * @syscap SystemCapability.Multimedia.Media.Core * @since 11 */ VIDEO_HEVC = 'video/hevc', } } export default media;