@ohos.multimedia.avsession (AVSession Management)
The avSession module provides APIs for media playback control so that applications can access the system's Media Controller.
This module provides the following typical features related to media sessions:
- AVSession: used to set session metadata, playback state information, and more.
- AVSessionController: used to obtain session IDs, send commands and events to sessions, and obtain the session metadata and playback state information.
NOTE
The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
All the APIs provided by this module are system APIs.
Modules to Import
import avSession from '@ohos.multimedia.avsession';
avSession.createAVSession
createAVSession(context: Context, tag: string, type: AVSessionType): Promise<AVSession>
Creates a media session. This API uses a promise to return the result. An ability can have only one session, and repeated calling of this API fails.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
context | Context | Yes | Application context, which provides application environment information. |
tag | string | Yes | Custom session name. |
type | AVSessionType | Yes | Session type, which can be audio or video. |
Return value
Type | Description |
---|---|
Promise<AVSession> | Promise used to return the media session obtained, which can be used to obtain the session ID, set the metadata and playback state information, and send key events. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
Example
import featureAbility from '@ohos.ability.featureAbility';
let session;
let tag = "createNewSession";
let context = featureAbility.getContext();
await avSession.createAVSession(context, tag, "audio").then((data) => {
session = data;
console.info(`CreateAVSession : SUCCESS : sessionId = ${session.sessionId}`);
}).catch((err) => {
console.info(`CreateAVSession BusinessError: code: ${err.code}, message: ${err.message}`);
});
avSession.createAVSession
createAVSession(context: Context, tag: string, type: AVSessionType, callback: AsyncCallback<AVSession>): void
Creates a media session. This API uses an asynchronous callback to return the result. An ability can have only one session, and repeated calling of this API fails.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
context | Context | Yes | Application context, which provides application environment information. |
tag | string | Yes | Custom session name. |
type | AVSessionType | Yes | Session type, which can be audio or video. |
callback | AsyncCallback<AVSession> | Yes | Callback used to return the media session obtained, which can be used to obtain the session ID, set the metadata and playback state information, and send key events. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
Example
import featureAbility from '@ohos.ability.featureAbility';
let session;
let tag = "createNewSession";
let context = featureAbility.getContext();
avSession.createAVSession(context, tag, "audio", function (err, data) {
if (err) {
console.info(`CreateAVSession BusinessError: code: ${err.code}, message: ${err.message}`);
} else {
session = data;
console.info(`CreateAVSession : SUCCESS : sessionId = ${session.sessionId}`);
}
});
avSession.getAllSessionDescriptors
getAllSessionDescriptors(): Promise<Array<Readonly<AVSessionDescriptor>>>
Obtains the descriptors of all sessions. This API uses a promise to return the result.
Required permissions: ohos.permission.MANAGE_MEDIA_RESOURCES (available only to system applications)
System capability: SystemCapability.Multimedia.AVSession.Manager
System API: This is a system API.
Return value
Type | Description |
---|---|
Promise<Array<Readonly<AVSessionDescriptor>>> | Promise used to return an array of AVSessionDescriptor objects, each of which is read only. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
Example
avSession.getAllSessionDescriptors().then((descriptors) => {
console.info(`getAllSessionDescriptors : SUCCESS : descriptors.length : ${descriptors.length}`);
if(descriptors.length > 0 ){
console.info(`getAllSessionDescriptors : SUCCESS : descriptors[0].isActive : ${descriptors[0].isActive}`);
console.info(`GetAllSessionDescriptors : SUCCESS : descriptors[0].type : ${descriptors[0].type}`);
console.info(`GetAllSessionDescriptors : SUCCESS : descriptors[0].sessionTag : ${descriptors[0].sessionTag}`);
}
}).catch((err) => {
console.info(`GetAllSessionDescriptors BusinessError: code: ${err.code}, message: ${err.message}`);
});
avSession.getAllSessionDescriptors
getAllSessionDescriptors(callback: AsyncCallback<Array<Readonly<AVSessionDescriptor>>>): void
Obtains the descriptors of all sessions. This API uses an asynchronous callback to return the result.
Required permissions: ohos.permission.MANAGE_MEDIA_RESOURCES (available only to system applications)
System capability: SystemCapability.Multimedia.AVSession.Manager
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
callback | AsyncCallback<Array<Readonly<AVSessionDescriptor>>> | Yes | Callback used to return an array of AVSessionDescriptor objects, each of which is read only. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
Example
avSession.getAllSessionDescriptors(function (err, descriptors) {
if (err) {
console.info(`GetAllSessionDescriptors BusinessError: code: ${err.code}, message: ${err.message}`);
} else {
console.info(`GetAllSessionDescriptors : SUCCESS : descriptors.length : ${descriptors.length}`);
if(descriptors.length > 0 ){
console.info(`getAllSessionDescriptors : SUCCESS : descriptors[0].isActive : ${descriptors[0].isActive}`);
console.info(`getAllSessionDescriptors : SUCCESS : descriptors[0].type : ${descriptors[0].type}`);
console.info(`getAllSessionDescriptors : SUCCESS : descriptors[0].sessionTag : ${descriptors[0].sessionTag}`);
}
}
});
avSession.createController
createController(sessionId: string): Promise<AVSessionController>
Creates a session controller based on the session ID. Multiple session controllers can be created. This API uses a promise to return the result.
Required permissions: ohos.permission.MANAGE_MEDIA_RESOURCES (available only to system applications)
System capability: SystemCapability.Multimedia.AVSession.Manager
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
sessionId | string | Yes | Session ID. |
Return value
Type | Description |
---|---|
Promise<AVSessionController> | Promise used to return the session controller created, which can be used to obtain the session ID, send commands and events to sessions, and obtain metadata and playback state information. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
import featureAbility from '@ohos.ability.featureAbility';
let session;
let tag = "createNewSession";
let context = featureAbility.getContext();
await avSession.createAVSession(context, tag, "audio").then((data) => {
session = data;
console.info(`CreateAVSession : SUCCESS : sessionId = ${session.sessionId}`);
}).catch((err) => {
console.info(`CreateAVSession BusinessError: code: ${err.code}, message: ${err.message}`);
});
let controller;
await avSession.createController(session.sessionId).then((avcontroller) => {
controller = avcontroller;
console.info(`CreateController : SUCCESS : ${controller.sessionId}`);
}).catch((err) => {
console.info(`CreateController BusinessError: code: ${err.code}, message: ${err.message}`);
});
avSession.createController
createController(sessionId: string, callback: AsyncCallback<AVSessionController>): void
Creates a session controller based on the session ID. Multiple session controllers can be created. This API uses an asynchronous callback to return the result.
Required permissions: ohos.permission.MANAGE_MEDIA_RESOURCES (available only to system applications)
System capability: SystemCapability.Multimedia.AVSession.Manager
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
sessionId | string | Yes | Session ID. |
callback | AsyncCallback<AVSessionController> | Yes | Callback used to return the session controller created, which can be used to obtain the session ID, send commands and events to sessions, and obtain metadata and playback state information. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
import featureAbility from '@ohos.ability.featureAbility';
let session;
let tag = "createNewSession";
let context = featureAbility.getContext();
await avSession.createAVSession(context, tag, "audio").then((data) => {
session = data;
console.info(`CreateAVSession : SUCCESS : sessionId = ${session.sessionId}`);
}).catch((err) => {
console.info(`CreateAVSession BusinessError: code: ${err.code}, message: ${err.message}`);
});
let controller;
avSession.createController(session.sessionId, function (err, avcontroller) {
if (err) {
console.info(`CreateController BusinessError: code: ${err.code}, message: ${err.message}`);
} else {
controller = avcontroller;
console.info(`CreateController : SUCCESS : ${controller.sessionId}`);
}
});
avSession.castAudio
castAudio(session: SessionToken | 'all', audioDevices: Array<audio.AudioDeviceDescriptor>): Promise<void>
Casts a session to a list of devices. This API uses a promise to return the result.
Before calling this API, import the ohos.multimedia.audio module to obtain the descriptors of these audio devices.
Required permissions: ohos.permission.MANAGE_MEDIA_RESOURCES (available only to system applications)
System capability: SystemCapability.Multimedia.AVSession.Manager
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
session | SessionToken | 'all' | Yes | Session token. SessionToken indicates a specific token, and 'all' indicates all tokens. |
audioDevices | Array<audio.AudioDeviceDescriptor> | Yes | Audio devices. |
Return value
Type | Description |
---|---|
Promise<void> | Promise used to return the result. If the casting is successful, no value is returned; otherwise, an error object is returned. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
6600104 | The remote session connection failed. |
Example
import audio from '@ohos.multimedia.audio';
let audioManager = audio.getAudioManager();
let audioRoutingManager = audioManager.getRoutingManager();
let audioDevices;
await audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data) => {
audioDevices = data;
console.info('Promise returned to indicate that the device list is obtained.');
}).catch((err) => {
console.info(`GetDevices BusinessError: code: ${err.code}, message: ${err.message}`);
});
avSession.castAudio('all', audioDevices).then(() => {
console.info('CreateController : SUCCESS');
}).catch((err) => {
console.info(`CreateController BusinessError: code: ${err.code}, message: ${err.message}`);
});
avSession.castAudio
castAudio(session: SessionToken | 'all', audioDevices: Array<audio.AudioDeviceDescriptor>, callback: AsyncCallback<void>): void
Casts a session to a list of devices. This API uses an asynchronous callback to return the result.
Before calling this API, import the ohos.multimedia.audio module to obtain the descriptors of these audio devices.
Required permissions: ohos.permission.MANAGE_MEDIA_RESOURCES (available only to system applications)
System capability: SystemCapability.Multimedia.AVSession.Manager
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
session | SessionToken | 'all' | Yes | Session token. SessionToken indicates a specific token, and 'all' indicates all tokens. |
audioDevices | Array<audio.AudioDeviceDescriptor> | Yes | Audio devices. |
callback | AsyncCallback<void> | Yes | Callback used to return the result. If the casting is successful, err is undefined; otherwise, err is an error object. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
6600104 | The remote session connection failed. |
Example
import audio from '@ohos.multimedia.audio';
let audioManager = audio.getAudioManager();
let audioRoutingManager = audioManager.getRoutingManager();
let audioDevices;
await audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data) => {
audioDevices = data;
console.info('Promise returned to indicate that the device list is obtained.');
}).catch((err) => {
console.info(`GetDevices BusinessError: code: ${err.code}, message: ${err.message}`);
});
avSession.castAudio('all', audioDevices, function (err) {
if (err) {
console.info(`CastAudio BusinessError: code: ${err.code}, message: ${err.message}`);
} else {
console.info('CastAudio : SUCCESS ');
}
});
avSession.on('sessionCreate' | 'sessionDestroy' | 'topSessionChange')
on(type: 'sessionCreate' | 'sessionDestroy' | 'topSessionChange', callback: (session: AVSessionDescriptor) => void): void
Subscribes to session creation, session destruction, and top session change events.
Required permissions: ohos.permission.MANAGE_MEDIA_RESOURCES (available only to system applications)
System capability: SystemCapability.Multimedia.AVSession.Manager
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. - 'sessionCreate': session creation event, which is reported when a session is created. - 'sessionDestroy': session destruction event, which is reported when a session is destroyed. - 'topSessionChange': top session change event, which is reported when the top session is changed. |
callback | (session: AVSessionDescriptor) => void | Yes | Callback used to report the session descriptor. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
Example
avSession.on('sessionCreate', (descriptor) => {
console.info(`on sessionCreate : isActive : ${descriptor.isActive}`);
console.info(`on sessionCreate : type : ${descriptor.type}`);
console.info(`on sessionCreate : sessionTag : ${descriptor.sessionTag}`);
});
avSession.on('sessionDestroy', (descriptor) => {
console.info(`on sessionDestroy : isActive : ${descriptor.isActive}`);
console.info(`on sessionDestroy : type : ${descriptor.type}`);
console.info(`on sessionDestroy : sessionTag : ${descriptor.sessionTag}`);
});
avSession.on('topSessionChange', (descriptor) => {
console.info(`on topSessionChange : isActive : ${descriptor.isActive}`);
console.info(`on topSessionChange : type : ${descriptor.type}`);
console.info(`on topSessionChange : sessionTag : ${descriptor.sessionTag}`);
});
avSession.off('sessionCreate' | 'sessionDestroy' | 'topSessionChange')
off(type: 'sessionCreate' | 'sessionDestroy' | 'topSessionChange', callback?: (session: AVSessionDescriptor) => void): void
Unsubscribes from session creation, session destruction, and top session change events.
Required permissions: ohos.permission.MANAGE_MEDIA_RESOURCES (available only to system applications)
System capability: SystemCapability.Multimedia.AVSession.Manager
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. - 'sessionCreate': session creation event, which is reported when a session is created. - 'sessionDestroy': session destruction event, which is reported when a session is destroyed. - 'topSessionChange': top session change event, which is reported when the top session is changed. |
callback | (session: AVSessionDescriptor) => void | No | Callback used for unsubscription. If the unsubscription is successful, err is undefined; otherwise, err is an error object. The session parameter in the callback describes a media session. The callback parameter is optional. If it is not specified, all the subscriptions to the specified event are canceled for this session. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
Example
avSession.off('sessionCreate');
avSession.off('sessionDestroy');
avSession.off('topSessionChange');
avSession.on('sessionServiceDie')
on(type: 'sessionServiceDie', callback: () => void): void
Subscribes to session service death events.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The event 'sessionServiceDie' is reported when the session service dies. |
callback | callback: () => void | Yes | Callback used for subscription. If the subscription is successful, err is undefined; otherwise, err is an error object. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
Example
avSession.on('sessionServiceDie', () => {
console.info('on sessionServiceDie : session is Died ');
});
avSession.off('sessionServiceDie')
off(type: 'sessionServiceDie', callback?: () => void): void
Unsubscribes from session service death events.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The event 'sessionServiceDie' is reported when the session service dies. |
callback | callback: () => void | No | Callback used for unsubscription. If the unsubscription is successful, err is undefined; otherwise, err is an error object. The callback parameter is optional. If it is not specified, all the subscriptions to the specified event are canceled for this session. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
Example
avSession.off('sessionServiceDie');
avSession.sendSystemAVKeyEvent
sendSystemAVKeyEvent(event: KeyEvent): Promise<void>
Sends a system key event to the top session. This API uses a promise to return the result.
Required permissions: ohos.permission.MANAGE_MEDIA_RESOURCES (available only to system applications)
System capability: SystemCapability.Multimedia.AVSession.Manager
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
event | KeyEvent | Yes | Key event. |
Return value
Type | Description |
---|---|
Promise<void> | Promise used to return the result. If the event is sent, no value is returned; otherwise, an error object is returned. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600105 | Invalid session command. |
Example
let keyItem = {code:0x49, pressedTime:2, deviceId:0};
let event = {id:1, deviceId:0, actionTime:1, screenId:1, windowId:1, action:2, key:keyItem, unicodeChar:0, keys:[keyItem], ctrlKey:false, altKey:false, shiftKey:false, logoKey:false, fnKey:false, capsLock:false, numLock:false, scrollLock:false};
avSession.sendSystemAVKeyEvent(event).then(() => {
console.info('SendSystemAVKeyEvent Successfully');
}).catch((err) => {
console.info(`SendSystemAVKeyEvent BusinessError: code: ${err.code}, message: ${err.message}`);
});
avSession.sendSystemAVKeyEvent
sendSystemAVKeyEvent(event: KeyEvent, callback: AsyncCallback<void>): void
Sends a system key event to the top session. This API uses an asynchronous callback to return the result.
Required permissions: ohos.permission.MANAGE_MEDIA_RESOURCES (available only to system applications)
System capability: SystemCapability.Multimedia.AVSession.Manager
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
event | KeyEvent | Yes | Key event. |
callback | AsyncCallback<void> | Yes | Callback used to return the result. If the event is sent, err is undefined; otherwise, err is an error object. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600105 | Invalid session command. |
Example
let keyItem = {code:0x49, pressedTime:2, deviceId:0};
let event = {id:1, deviceId:0, actionTime:1, screenId:1, windowId:1, action:2, key:keyItem, unicodeChar:0, keys:[keyItem], ctrlKey:false, altKey:false, shiftKey:false, logoKey:false, fnKey:false, capsLock:false, numLock:false, scrollLock:false};
avSession.sendSystemAVKeyEvent(event, function (err) {
if (err) {
console.info(`SendSystemAVKeyEvent BusinessError: code: ${err.code}, message: ${err.message}`);
} else {
console.info('SendSystemAVKeyEvent : SUCCESS ');
}
});
avSession.sendSystemControlCommand
sendSystemControlCommand(command: AVControlCommand): Promise<void>
Sends a system control command to the top session. This API uses a promise to return the result.
Required permissions: ohos.permission.MANAGE_MEDIA_RESOURCES (available only to system applications)
System capability: SystemCapability.Multimedia.AVSession.Manager
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
command | AVControlCommand | Yes | Command to send. |
Return value
Type | Description |
---|---|
Promise<void> | Promise used to return the result. If the command is sent, no value is returned; otherwise, an error object is returned. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600105 | Invalid session command. |
6600107 | Too many commands or events. |
Example
let cmd : avSession.AVControlCommandType = 'play';
// let cmd : avSession.AVControlCommandType = 'pause';
// let cmd : avSession.AVControlCommandType = 'stop';
// let cmd : avSession.AVControlCommandType = 'playNext';
// let cmd : avSession.AVControlCommandType = 'playPrevious';
// let cmd : avSession.AVControlCommandType = 'fastForward';
// let cmd : avSession.AVControlCommandType = 'rewind';
let avcommand = {command:cmd};
// let cmd : avSession.AVControlCommandType = 'seek';
// let avcommand = {command:cmd, parameter:10};
// let cmd : avSession.AVControlCommandType = 'setSpeed';
// let avcommand = {command:cmd, parameter:2.6};
// let cmd : avSession.AVControlCommandType = 'setLoopMode';
// let avcommand = {command:cmd, parameter:avSession.LoopMode.LOOP_MODE_SINGLE};
// let cmd : avSession.AVControlCommandType = 'toggleFavorite';
// let avcommand = {command:cmd, parameter:"false"};
avSession.sendSystemControlCommand(avcommand).then(() => {
console.info('SendSystemControlCommand successfully');
}).catch((err) => {
console.info(`SendSystemControlCommand BusinessError: code: ${err.code}, message: ${err.message}`);
});
avSession.sendSystemControlCommand
sendSystemControlCommand(command: AVControlCommand, callback: AsyncCallback<void>): void
Sends a system control command to the top session. This API uses an asynchronous callback to return the result.
Required permissions: ohos.permission.MANAGE_MEDIA_RESOURCES (available only to system applications)
System capability: SystemCapability.Multimedia.AVSession.Manager
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
command | AVControlCommand | Yes | Command to send. |
callback | AsyncCallback<void> | Yes | Callback used to return the result. If the command is sent, err is undefined; otherwise, err is an error object. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600105 | Invalid session command. |
6600107 | Too many commands or events. |
Example
let cmd : avSession.AVControlCommandType = 'play';
// let cmd : avSession.AVControlCommandType = 'pause';
// let cmd : avSession.AVControlCommandType = 'stop';
// let cmd : avSession.AVControlCommandType = 'playNext';
// let cmd : avSession.AVControlCommandType = 'playPrevious';
// let cmd : avSession.AVControlCommandType = 'fastForward';
// let cmd : avSession.AVControlCommandType = 'rewind';
let avcommand = {command:cmd};
// let cmd : avSession.AVControlCommandType = 'seek';
// let avcommand = {command:cmd, parameter:10};
// let cmd : avSession.AVControlCommandType = 'setSpeed';
// let avcommand = {command:cmd, parameter:2.6};
// let cmd : avSession.AVControlCommandType = 'setLoopMode';
// let avcommand = {command:cmd, parameter:avSession.LoopMode.LOOP_MODE_SINGLE};
// let cmd : avSession.AVControlCommandType = 'toggleFavorite';
// let avcommand = {command:cmd, parameter:"false"};
avSession.sendSystemControlCommand(avcommand, function (err) {
if (err) {
console.info(`SendSystemControlCommand BusinessError: code: ${err.code}, message: ${err.message}`);
} else {
console.info('sendSystemControlCommand successfully');
}
});
AVSession
An AVSession object is created by calling avSession.createAVSession. The object enables you to obtain the session ID and set the metadata and playback state.
Attributes
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Name | Type | Readable | Writable | Description |
---|---|---|---|---|
sessionId | string | Yes | No | Unique session ID of the AVSession object. |
Example
let sessionId = session.sessionId;
setAVMetadata
setAVMetadata(data: AVMetadata): Promise<void>
Sets session metadata. This API uses a promise to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
data | AVMetadata | Yes | Session metadata. |
Return value
Type | Description |
---|---|
Promise<void> | Promise used to return the result. If the setting is successful, no value is returned; otherwise, an error object is returned. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
let metadata = {
assetId: "121278",
title: "lose yourself",
artist: "Eminem",
author: "ST",
album: "Slim shady",
writer: "ST",
composer: "ST",
duration: 2222,
mediaImage: "https://www.example.com/example.jpg",
subtitle: "8 Mile",
description: "Rap",
lyric: "https://www.example.com/example.lrc",
previousAssetId: "121277",
nextAssetId: "121279",
};
session.setAVMetadata(metadata).then(() => {
console.info('SetAVMetadata successfully');
}).catch((err) => {
console.info(`SetAVMetadata BusinessError: code: ${err.code}, message: ${err.message}`);
});
setAVMetadata
setAVMetadata(data: AVMetadata, callback: AsyncCallback<void>): void
Sets session metadata. This API uses an asynchronous callback to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
data | AVMetadata | Yes | Session metadata. |
callback | AsyncCallback<void> | Yes | Callback used to return the result. If the setting is successful, err is undefined; otherwise, err is an error object. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
let metadata = {
assetId: "121278",
title: "lose yourself",
artist: "Eminem",
author: "ST",
album: "Slim shady",
writer: "ST",
composer: "ST",
duration: 2222,
mediaImage: "https://www.example.com/example.jpg",
subtitle: "8 Mile",
description: "Rap",
lyric: "https://www.example.com/example.lrc",
previousAssetId: "121277",
nextAssetId: "121279",
};
session.setAVMetadata(metadata, function (err) {
if (err) {
console.info(`SetAVMetadata BusinessError: code: ${err.code}, message: ${err.message}`);
} else {
console.info('SetAVMetadata successfully');
}
});
setAVPlaybackState
setAVPlaybackState(state: AVPlaybackState): Promise<void>
Sets information related to the session playback state. This API uses a promise to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
data | AVPlaybackState | Yes | Information related to the session playback state. |
Return value
Type | Description |
---|---|
Promise<void> | Promise used to return the result. If the setting is successful, no value is returned; otherwise, an error object is returned. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
let playbackState = {
state:avSession.PlaybackState.PLAYBACK_STATE_PLAY,
speed: 1.0,
position:{elapsedTime:10, updateTime:(new Date()).getTime()},
bufferedTime:1000,
loopMode:avSession.LoopMode.LOOP_MODE_SINGLE,
isFavorite:true,
};
session.setAVPlaybackState(playbackState).then(() => {
console.info('SetAVPlaybackState successfully');
}).catch((err) => {
console.info(`SetAVPlaybackState BusinessError: code: ${err.code}, message: ${err.message}`);
});
setAVPlaybackState
setAVPlaybackState(state: AVPlaybackState, callback: AsyncCallback<void>): void
Sets information related to the session playback state. This API uses an asynchronous callback to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
data | AVPlaybackState | Yes | Information related to the session playback state. |
callback | AsyncCallback<void> | Yes | Callback used to return the result. If the setting is successful, err is undefined; otherwise, err is an error object. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
let PlaybackState = {
state:avSession.PlaybackState.PLAYBACK_STATE_PLAY,
speed: 1.0,
position:{elapsedTime:10, updateTime:(new Date()).getTime()},
bufferedTime:1000,
loopMode:avSession.LoopMode.LOOP_MODE_SINGLE,
isFavorite:true,
};
session.setAVPlaybackState(PlaybackState, function (err) {
if (err) {
console.info(`SetAVPlaybackState BusinessError: code: ${err.code}, message: ${err.message}`);
} else {
console.info('SetAVPlaybackState successfully');
}
});
setLaunchAbility
setLaunchAbility(ability: WantAgent): Promise<void>
Sets a launcher ability. This API uses a promise to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
ability | WantAgent | Yes | Application attributes, such as the bundle name, ability name, and deviceID. |
Return value
Type | Description |
---|---|
Promise<void> | Promise used to return the result. If the setting is successful, no value is returned; otherwise, an error object is returned. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
import wantAgent from '@ohos.wantAgent';
// WantAgentInfo object
let wantAgentInfo = {
wants: [
{
deviceId: "deviceId",
bundleName: "com.neu.setResultOnAbilityResultTest1",
abilityName: "com.example.test.MainAbility",
action: "action1",
entities: ["entity1"],
type: "MIMETYPE",
uri: "key={true,true,false}",
parameters:
{
mykey0: 2222,
mykey1: [1, 2, 3],
mykey2: "[1, 2, 3]",
mykey3: "ssssssssssssssssssssssssss",
mykey4: [false, true, false],
mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"],
mykey6: true,
}
}
],
operationType: wantAgent.OperationType.START_ABILITIES,
requestCode: 0,
wantAgentFlags:[wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
}
wantAgent.getWantAgent(wantAgentInfo).then((agent) => {
session.setLaunchAbility(agent).then(() => {
console.info('SetLaunchAbility successfully');
}).catch((err) => {
console.info(`SetLaunchAbility BusinessError: code: ${err.code}, message: ${err.message}`);
});
});
setLaunchAbility
setLaunchAbility(ability: WantAgent, callback: AsyncCallback<void>): void
Sets a launcher ability. This API uses an asynchronous callback to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
ability | WantAgent | Yes | Application attributes, such as the bundle name, ability name, and deviceID. |
callback | AsyncCallback<void> | Yes | Callback used to return the result. If the setting is successful, err is undefined; otherwise, err is an error object. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
import wantAgent from '@ohos.wantAgent';
// WantAgentInfo object
let wantAgentInfo = {
wants: [
{
deviceId: "deviceId",
bundleName: "com.neu.setResultOnAbilityResultTest1",
abilityName: "com.example.test.MainAbility",
action: "action1",
entities: ["entity1"],
type: "MIMETYPE",
uri: "key={true,true,false}",
parameters:
{
mykey0: 2222,
mykey1: [1, 2, 3],
mykey2: "[1, 2, 3]",
mykey3: "ssssssssssssssssssssssssss",
mykey4: [false, true, false],
mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"],
mykey6: true,
}
}
],
operationType: wantAgent.OperationType.START_ABILITIES,
requestCode: 0,
wantAgentFlags:[wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
}
wantAgent.getWantAgent(wantAgentInfo).then((agent) => {
session.setLaunchAbility(agent, function (err) {
if (err) {
console.info(`SetLaunchAbility BusinessError: code: ${err.code}, message: ${err.message}`);
} else {
console.info('SetLaunchAbility successfully');
}
});
});
getController
getController(): Promise<AVSessionController>
Obtains the controller corresponding to this session. This API uses a promise to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Return value
Type | Description |
---|---|
Promise<AVSessionController> | Promise used to return the session controller. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
let controller;
session.getController().then((avcontroller) => {
controller = avcontroller;
console.info(`GetController : SUCCESS : sessionid : ${controller.sessionId}`);
}).catch((err) => {
console.info(`GetController BusinessError: code: ${err.code}, message: ${err.message}`);
});
getController
getController(callback: AsyncCallback<AVSessionController>): void
Obtains the controller corresponding to this session. This API uses an asynchronous callback to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
callback | AsyncCallback<AVSessionController> | Yes | Callback used to return the session controller. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
let controller;
session.getController(function (err, avcontroller) {
if (err) {
console.info(`GetController BusinessError: code: ${err.code}, message: ${err.message}`);
} else {
controller = avcontroller;
console.info(`GetController : SUCCESS : sessionid : ${controller.sessionId}`);
}
});
getOutputDevice
getOutputDevice(): Promise<OutputDeviceInfo>
Obtains information about the output device for this session. This API uses a promise to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Return value
Type | Description |
---|---|
Promise<OutputDeviceInfo> | Promise used to return the output device information. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
session.getOutputDevice().then((outputDeviceInfo) => {
console.info(`GetOutputDevice : SUCCESS : isRemote : ${outputDeviceInfo.isRemote}`);
}).catch((err) => {
console.info(`GetOutputDevice BusinessError: code: ${err.code}, message: ${err.message}`);
});
getOutputDevice
getOutputDevice(callback: AsyncCallback<OutputDeviceInfo>): void
Obtains information about the output device for this session. This API uses an asynchronous callback to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
callback | AsyncCallback<OutputDeviceInfo> | Yes | Callback used to return the information obtained. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
session.getOutputDevice(function (err, outputDeviceInfo) {
if (err) {
console.info(`GetOutputDevice BusinessError: code: ${err.code}, message: ${err.message}`);
} else {
console.info(`GetOutputDevice : SUCCESS : isRemote : ${outputDeviceInfo.isRemote}`);
}
});
activate
activate(): Promise<void>
Activates this session. A session can be used only after being activated. This API uses a promise to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Return value
Type | Description |
---|---|
Promise<void> | Promise used to return the result. If the session is activated, no value is returned; otherwise, an error object is returned. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
session.activate().then(() => {
console.info('Activate : SUCCESS ');
}).catch((err) => {
console.info(`Activate BusinessError: code: ${err.code}, message: ${err.message}`);
});
activate
activate(callback: AsyncCallback<void>): void
Activates this session. A session can be used only after being activated. This API uses an asynchronous callback to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
callback | AsyncCallback<void> | Yes | Callback used to return the result. If the session is activated, err is undefined; otherwise, err is an error object. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
session.activate(function (err) {
if (err) {
console.info(`Activate BusinessError: code: ${err.code}, message: ${err.message}`);
} else {
console.info('Activate : SUCCESS ');
}
});
deactivate
deactivate(): Promise<void>
Deactivates this session. You can use activate to activate the session again. This API uses a promise to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Return value
Type | Description |
---|---|
Promise<void> | Promise used to return the result. If the session is deactivated, no value is returned; otherwise, an error object is returned. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
session.deactivate().then(() => {
console.info('Deactivate : SUCCESS ');
}).catch((err) => {
console.info(`Deactivate BusinessError: code: ${err.code}, message: ${err.message}`);
});
deactivate
deactivate(callback: AsyncCallback<void>): void
Deactivates this session. This API uses an asynchronous callback to return the result.
Deactivates this session. You can use activate to activate the session again.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
callback | AsyncCallback<void> | Yes | Callback used to return the result. If the session is deactivated, err is undefined; otherwise, err is an error object. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
session.deactivate(function (err) {
if (err) {
console.info(`Deactivate BusinessError: code: ${err.code}, message: ${err.message}`);
} else {
console.info('Deactivate : SUCCESS ');
}
});
destroy
destroy(): Promise<void>
Destroys this session. This API uses a promise to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Return value
Type | Description |
---|---|
Promise<void> | Promise used to return the result. If the session is destroyed, no value is returned; otherwise, an error object is returned. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
session.destroy().then(() => {
console.info('Destroy : SUCCESS ');
}).catch((err) => {
console.info(`Destroy BusinessError: code: ${err.code}, message: ${err.message}`);
});
destroy
destroy(callback: AsyncCallback<void>): void
Destroys this session. This API uses an asynchronous callback to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
callback | AsyncCallback<void> | Yes | Callback used to return the result. If the session is destroyed, err is undefined; otherwise, err is an error object. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
session.destroy(function (err) {
if (err) {
console.info(`Destroy BusinessError: code: ${err.code}, message: ${err.message}`);
} else {
console.info('Destroy : SUCCESS ');
}
});
on('play'|'pause'|'stop'|'playNext'|'playPrevious'|'fastForward'|'rewind')
on(type: 'play'|'pause'|'stop'|'playNext'|'playPrevious'|'fastForward'|'rewind', callback: () => void): void
Subscribes to playback command events.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The following events are supported: 'play', 'pause', 'stop', 'playNext', 'playPrevious', 'fastForward', and 'rewind'. The event is reported when the corresponding playback command is sent to the session. |
callback | callback: () => void | Yes | Callback used for subscription. If the subscription is successful, err is undefined; otherwise, err is an error object. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
session.on('play', () => {
console.info('on play entry');
});
session.on('pause', () => {
console.info('on pause entry');
});
session.on('stop', () => {
console.info('on stop entry');
});
session.on('playNext', () => {
console.info('on playNext entry');
});
session.on('playPrevious', () => {
console.info('on playPrevious entry');
});
session.on('fastForward', () => {
console.info('on fastForward entry');
});
session.on('rewind', () => {
console.info('on rewind entry');
});
on('seek')
on(type: 'seek', callback: (time: number) => void): void
Subscribes to the seek event.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The event 'seek' is reported when the seek command is sent to the session. |
callback | (time: number) => void | Yes | Callback used for subscription. The time parameter in the callback indicates the time to seek to, in milliseconds. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example The session does not exist
session.on('seek', (time) => {
console.info(`on seek entry time : ${time}`);
});
on('setSpeed')
on(type: 'setSpeed', callback: (speed: number) => void): void
Subscribes to the event for setting the playback speed.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The event 'setSpeed' is reported when the command for setting the playback speed is sent to the session. |
callback | (speed: number) => void | Yes | Callback used for subscription. The speed parameter in the callback indicates the playback speed. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
session.on('setSpeed', (speed) => {
console.info(`on setSpeed speed : ${speed}`);
});
on('setLoopMode')
on(type: 'setLoopMode', callback: (mode: LoopMode) => void): void
Subscribes to the event for setting the loop mode.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The event 'setLoopMode' is reported when the command for setting the loop mode is sent to the session. |
callback | (mode: LoopMode) => void | Yes | Callback used for subscription. The mode parameter in the callback indicates the loop mode. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
session.on('setLoopMode', (mode) => {
console.info(`on setLoopMode mode : ${mode}`);
});
on('toggleFavorite')
on(type: 'toggleFavorite', callback: (assetId: string) => void): void
Subscribes to the event for favoriting a media asset.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The event 'toggleFavorite' is reported when the command for favoriting the media asset is sent to the session. |
callback | (assetId: string) => void | Yes | Callback used for subscription. The assetId parameter in the callback indicates the media asset ID. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
session.on('toggleFavorite', (assetId) => {
console.info(`on toggleFavorite mode : ${assetId}`);
});
on('handleKeyEvent')
on(type: 'handleKeyEvent', callback: (event: KeyEvent) => void): void
Subscribes to the key event.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The event 'handleKeyEvent' is reported when a key event is sent to the session. |
callback | (event: KeyEvent) => void | Yes | Callback used for subscription. The event parameter in the callback indicates the key event. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
session.on('handleKeyEvent', (event) => {
console.info(`on handleKeyEvent event : ${event}`);
});
on('outputDeviceChange')
on(type: 'outputDeviceChange', callback: (device: OutputDeviceInfo) => void): void
Subscribes to output device changes.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The event 'outputDeviceChange' is reported when the output device changes. |
callback | (device: OutputDeviceInfo) => void | Yes | Callback used for subscription. The device parameter in the callback indicates the output device information. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
session.on('outputDeviceChange', (device) => {
console.info(`on outputDeviceChange device isRemote : ${device.isRemote}`);
});
off('play'|'pause'|'stop'|'playNext'|'playPrevious'|'fastForward'|'rewind')
off(type: 'play' | 'pause' | 'stop' | 'playNext' | 'playPrevious' | 'fastForward' | 'rewind', callback?: () => void): void
Unsubscribes from playback command events.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The following events are supported: 'play', 'pause', 'stop', 'playNext', 'playPrevious', 'fastForward', and 'rewind'. |
callback | callback: () => void | No | Callback used for unsubscription. If the unsubscription is successful, err is undefined; otherwise, err is an error object. The callback parameter is optional. If it is not specified, all the subscriptions to the specified event are canceled for this session. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
session.off('play');
session.off('pause');
session.off('stop');
session.off('playNext');
session.off('playPrevious');
session.off('fastForward');
session.off('rewind');
off('seek')
off(type: 'seek', callback?: (time: number) => void): void
Unsubscribes from the seek event.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The value is fixed at 'seek'. |
callback | (time: number) => void | No | Callback used for unsubscription. The time parameter in the callback indicates the time to seek to, in milliseconds. If the unsubscription is successful, err is undefined; otherwise, err is an error object. The callback parameter is optional. If it is not specified, all the subscriptions to the specified event are canceled for this session. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
session.off('seek');
off('setSpeed')
off(type: 'setSpeed', callback?: (speed: number) => void): void
Unsubscribes from the event for setting the playback speed.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The value is fixed at 'setSpeed'. |
callback | (speed: number) => void | No | Callback used for unsubscription. The speed parameter in the callback indicates the playback speed. If the unsubscription is successful, err is undefined; otherwise, err is an error object. The callback parameter is optional. If it is not specified, all the subscriptions to the specified event are canceled for this session. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
session.off('setSpeed');
off('setLoopMode')
off(type: 'setLoopMode', callback?: (mode: LoopMode) => void): void
Unsubscribes from the event for setting loop mode.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The value is fixed at 'setLoopMode'. |
callback | (mode: LoopMode) => void | No | Callback used for unsubscription. The mode parameter in the callback indicates the loop mode. If the unsubscription is successful, err is undefined; otherwise, err is an error object. The callback parameter is optional. If it is not specified, all the subscriptions to the specified event are canceled for this session. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
session.off('setLoopMode');
off('toggleFavorite')
off(type: 'toggleFavorite', callback?: (assetId: string) => void): void
Unsubscribes from the event for favoriting a media asset.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The value is fixed at 'toggleFavorite'. |
callback | (assetId: string) => void | No | Callback used for unsubscription. The assetId parameter in the callback indicates the media asset ID. If the unsubscription is successful, err is undefined; otherwise, err is an error object. The callback parameter is optional. If it is not specified, all the subscriptions to the specified event are canceled for this session. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
session.off('toggleFavorite');
off('handleKeyEvent')
off(type: 'handleKeyEvent', callback?: (event: KeyEvent) => void): void
Unsubscribes from the key event.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The value is fixed at 'handleKeyEvent'. |
callback | (event: KeyEvent) => void | No | Callback used for unsubscription. The event parameter in the callback indicates the key event. If the unsubscription is successful, err is undefined; otherwise, err is an error object. The callback parameter is optional. If it is not specified, all the subscriptions to the specified event are canceled for this session. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
session.off('handleKeyEvent');
off('outputDeviceChange')
off(type: 'outputDeviceChange', callback?: (device: OutputDeviceInfo) => void): void
Unsubscribes from playback device changes.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The value is fixed at 'outputDeviceChange'. |
callback | (device: OutputDeviceInfo) => void | No | Callback used for unsubscription. The device parameter in the callback indicates the output device information. If the unsubscription is successful, err is undefined; otherwise, err is an error object. The callback parameter is optional. If it is not specified, all the subscriptions to the specified event are canceled for this session. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
Example
session.off('outputDeviceChange');
AVSessionController
An AV session controller is created by calling avSession.createController. Through the AV session controller, you can query the session ID, send commands and events to a session, and obtain session metadata and playback state information.
Attributes
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Name | Type | Readable | Writable | Description |
---|---|---|---|---|
sessionId | string | Yes | No | Unique session ID of the AVSessionController object. |
Example
let sessionId;
await avSession.createController(session.sessionId).then((controller) => {
sessionId = controller.sessionId;
}).catch((err) => {
console.info(`CreateController BusinessError: code: ${err.code}, message: ${err.message}`);
});
getAVPlaybackState
getAVPlaybackState(): Promise<AVPlaybackState>
Obtains the information related to the playback state. This API uses a promise to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Return value
Type | Description |
---|---|
Promise<AVPlaybackState> | Promise used to return the AVPlaybackState object. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
6600103 | The session controller does not exist. |
Example
controller.getAVPlaybackState().then((playbackState) => {
console.info(`GetAVPlaybackState : SUCCESS : state : ${playbackState.state}`);
}).catch((err) => {
console.info(`GetAVPlaybackState BusinessError: code: ${err.code}, message: ${err.message}`);
});
getAVPlaybackState
getAVPlaybackState(callback: AsyncCallback<AVPlaybackState>): void
Obtains the information related to the playback state. This API uses an asynchronous callback to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
callback | AsyncCallback<AVPlaybackState> | Yes | Callback used to return the AVPlaybackState object. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
6600103 | The session controller does not exist. |
Example
controller.getAVPlaybackState(function (err, playbackState) {
if (err) {
console.info(`GetAVPlaybackState BusinessError: code: ${err.code}, message: ${err.message}`);
} else {
console.info(`GetAVPlaybackState : SUCCESS : state : ${playbackState.state}`);
}
});
getAVMetadata
getAVMetadata(): Promise<AVMetadata>
Obtains the session metadata. This API uses a promise to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Return value
Type | Description |
---|---|
Promise<AVMetadata> | Promise used to return the metadata obtained. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
6600103 | The session controller does not exist. |
Example
controller.getAVMetadata().then((metadata) => {
console.info(`GetAVMetadata : SUCCESS : assetId : ${metadata.assetId}`);
}).catch((err) => {
console.info(`GetAVMetadata BusinessError: code: ${err.code}, message: ${err.message}`);
});
getAVMetadata
getAVMetadata(callback: AsyncCallback<AVMetadata>): void
Obtains the session metadata. This API uses an asynchronous callback to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
callback | AsyncCallback<AVMetadata> | Yes | Callback used to return the metadata obtained. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
6600103 | The session controller does not exist. |
Example
controller.getAVMetadata(function (err, metadata) {
if (err) {
console.info(`GetAVMetadata BusinessError: code: ${err.code}, message: ${err.message}`);
} else {
console.info(`GetAVMetadata : SUCCESS : assetId : ${metadata.assetId}`);
}
});
getOutputDevice
getOutputDevice(): Promise<OutputDeviceInfo>
Obtains the output device information. This API uses a promise to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Return value
Type | Description |
---|---|
Promise<OutputDeviceInfo> | Promise used to return the information obtained. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600103 | The session controller does not exist. |
Example
controller.getOutputDevice().then((deviceInfo) => {
console.info(`GetOutputDevice : SUCCESS : isRemote : ${deviceInfo.isRemote}`);
}).catch((err) => {
console.info(`GetOutputDevice BusinessError: code: ${err.code}, message: ${err.message}`);
});
getOutputDevice
getOutputDevice(callback: AsyncCallback<OutputDeviceInfo>): void
Obtains the output device information. This API uses an asynchronous callback to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
callback | AsyncCallback<OutputDeviceInfo> | Yes | Callback used to return the information obtained. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600103 | The session controller does not exist. |
Example
controller.getOutputDevice(function (err, deviceInfo) {
if (err) {
console.info(`GetOutputDevice BusinessError: code: ${err.code}, message: ${err.message}`);
} else {
console.info(`GetOutputDevice : SUCCESS : isRemote : ${deviceInfo.isRemote}`);
}
});
sendAVKeyEvent
sendAVKeyEvent(event: KeyEvent): Promise<void>
Sends a key event to the session corresponding to this controller. This API uses a promise to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
event | KeyEvent | Yes | Key event. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
6600103 | The session controller does not exist. |
6600105 | Invalid session command. |
6600106 | The session is not activated. |
Return value
Type | Description |
---|---|
Promise<void> | Promise used to return the result. If the event is sent, no value is returned; otherwise, an error object is returned. |
Example
let keyItem = {code:0x49, pressedTime:2, deviceId:0};
let event = {action:2, key:keyItem, keys:[keyItem]};
controller.sendAVKeyEvent(event).then(() => {
console.info('SendAVKeyEvent Successfully');
}).catch((err) => {
console.info(`SendAVKeyEvent BusinessError: code: ${err.code}, message: ${err.message}`);
});
sendAVKeyEvent
sendAVKeyEvent(event: KeyEvent, callback: AsyncCallback<void>): void
Sends a key event to the session corresponding to this controller. This API uses an asynchronous callback to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
event | KeyEvent | Yes | Key event. |
callback | AsyncCallback<void> | Yes | Callback used to return the result. If the event is sent, err is undefined; otherwise, err is an error object. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
6600103 | The session controller does not exist. |
6600105 | Invalid session command. |
6600106 | The session is not activated. |
Example
let keyItem = {code:0x49, pressedTime:2, deviceId:0};
let event = {action:2, key:keyItem, keys:[keyItem]};
controller.sendAVKeyEvent(event, function (err) {
if (err) {
console.info(`SendAVKeyEvent BusinessError: code: ${err.code}, message: ${err.message}`);
} else {
console.info('SendAVKeyEvent Successfully');
}
});
getLaunchAbility
getLaunchAbility(): Promise<WantAgent>
Obtains the WantAgent object saved by the application in the session. This API uses a promise to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Return value
Type | Description |
---|---|
Promise<WantAgent> | Promise used to return the object saved by calling setLaunchAbility. The object includes the application attribute, such as the bundle name, ability name, and device ID. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
6600103 | The session controller does not exist. |
Example
import wantAgent from '@ohos.wantAgent';
controller.getLaunchAbility().then((agent) => {
console.info(`GetLaunchAbility : SUCCESS : wantAgent : ${agent}`);
}).catch((err) => {
console.info(`GetLaunchAbility BusinessError: code: ${err.code}, message: ${err.message}`);
});
getLaunchAbility
getLaunchAbility(callback: AsyncCallback<WantAgent>): void
Obtains the WantAgent object saved by the application in the session. This API uses an asynchronous callback to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
callback | AsyncCallback<WantAgent> | Yes | Callback used to return the object saved by calling setLaunchAbility. The object includes the application attribute, such as the bundle name, ability name, and device ID. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
6600103 | The session controller does not exist. |
Example
import wantAgent from '@ohos.wantAgent';
controller.getLaunchAbility(function (err, agent) {
if (err) {
console.info(`GetLaunchAbility BusinessError: code: ${err.code}, message: ${err.message}`);
} else {
console.info(`GetLaunchAbility : SUCCESS : wantAgent : ${agent}`);
}
});
getRealPlaybackPositionSync
getRealPlaybackPositionSync(): number
Obtains the playback position.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Return value
Type | Description |
---|---|
number | Playback position, in milliseconds. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600103 | The session controller does not exist. |
Example
let time = controller.getRealPlaybackPositionSync();
isActive
isActive(): Promise<boolean>
Checks whether the session is activated. This API uses a promise to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Return value
Type | Description |
---|---|
Promise<boolean> | Promise used to return the activation state. If the session is activated, true is returned; otherwise, false is returned. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
6600103 | The session controller does not exist. |
Example
controller.isActive().then((isActive) => {
console.info(`IsActive : SUCCESS : isactive : ${isActive}`);
}).catch((err) => {
console.info(`IsActive BusinessError: code: ${err.code}, message: ${err.message}`);
});
isActive
isActive(callback: AsyncCallback<boolean>): void
Checks whether the session is activated. This API uses an asynchronous callback to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
callback | AsyncCallback<boolean> | Yes | Callback used to return the activation state. If the session is activated, true is returned; otherwise, false is returned. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
6600103 | The session controller does not exist. |
Example
controller.isActive(function (err, isActive) {
if (err) {
console.info(`IsActive BusinessError: code: ${err.code}, message: ${err.message}`);
} else {
console.info(`IsActive : SUCCESS : isactive : ${isActive}`);
}
});
destroy
destroy(): Promise<void>
Destroys this controller. A controller can no longer be used after being destroyed. This API uses a promise to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Return value
Type | Description |
---|---|
Promise<void> | Promise used to return the result. If the controller is destroyed, no value is returned; otherwise, an error object is returned. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600103 | The session controller does not exist. |
Example
controller.destroy().then(() => {
console.info('Destroy : SUCCESS ');
}).catch((err) => {
console.info(`Destroy BusinessError: code: ${err.code}, message: ${err.message}`);
});
destroy
destroy(callback: AsyncCallback<void>): void
Destroys this controller. A controller can no longer be used after being destroyed. This API uses an asynchronous callback to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
callback | AsyncCallback<void> | Yes | Callback used to return the result. If the controller is destroyed, err is undefined; otherwise, err is an error object. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600103 | The session controller does not exist. |
Example
controller.destroy(function (err) {
if (err) {
console.info(`Destroy BusinessError: code: ${err.code}, message: ${err.message}`);
} else {
console.info('Destroy : SUCCESS ');
}
});
getValidCommands
getValidCommands(): Promise<Array<AVControlCommandType>>
Obtains valid commands supported by the session. This API uses a promise to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Return value
Type | Description |
---|---|
Promise<Array<AVControlCommandType>> | Promise used to return a set of valid commands. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
6600103 | The session controller does not exist. |
Example
controller.getValidCommands.then((validCommands) => {
console.info(`GetValidCommands : SUCCESS : size : ${validCommands.length}`);
}).catch((err) => {
console.info(`GetValidCommands BusinessError: code: ${err.code}, message: ${err.message}`);
});
getValidCommands
getValidCommands(callback: AsyncCallback<Array<AVControlCommandType>>): void
Obtains valid commands supported by the session. This API uses an asynchronous callback to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
callback | AsyncCallback<Array<AVControlCommandType>> | Yes | Callback used to return a set of valid commands. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
6600103 | The session controller does not exist. |
Example
controller.getValidCommands(function (err, validCommands) {
if (err) {
console.info(`GetValidCommands BusinessError: code: ${err.code}, message: ${err.message}`);
} else {
console.info(`GetValidCommands : SUCCESS : size : ${validCommands.length}`);
}
});
sendControlCommand
sendControlCommand(command: AVControlCommand): Promise<void>
Sends a control command to the session through the controller. This API uses a promise to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
command | AVControlCommand | Yes | Command to send. |
Return value
Type | Description |
---|---|
Promise<void> | Promise used to return the result. If the command is sent, no value is returned; otherwise, an error object is returned. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
6600103 | The session controller does not exist. |
6600105 | Invalid session command. |
6600106 | The session is not activated. |
6600107 | Too many commands or events. |
Example
let avCommand = {command:'play'};
// let avCommand = {command:'pause'};
// let avCommand = {command:'stop'};
// let avCommand = {command:'playNext'};
// let avCommand = {command:'playPrevious'};
// let avCommand = {command:'fastForward'};
// let avCommand = {command:'rewind'};
// let avCommand = {command:'seek', parameter:10};
// let avCommand = {command:'setSpeed', parameter:2.6};
// let avCommand = {command:'setLoopMode', parameter:avSession.LoopMode.LOOP_MODE_SINGLE};
// let avCommand = {command:'toggleFavorite', parameter:"false"};
controller.sendControlCommand(avCommand).then(() => {
console.info('SendControlCommand successfully');
}).catch((err) => {
console.info(`SendControlCommand BusinessError: code: ${err.code}, message: ${err.message}`);
});
sendControlCommand
sendControlCommand(command: AVControlCommand, callback: AsyncCallback<void>): void
Sends a control command to the session through the controller. This API uses an asynchronous callback to return the result.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
command | AVControlCommand | Yes | Command to send. |
callback | AsyncCallback<void> | Yes | Callback used to return the result. If the command is sent, err is undefined; otherwise, err is an error object. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600102 | The session does not exist. |
6600103 | The session controller does not exist. |
6600105 | Invalid session command. |
6600106 | The session is not activated. |
6600107 | Too many commands or events. |
Example
let avCommand = {command:'play'};
// let avCommand = {command:'pause'};
// let avCommand = {command:'stop'};
// let avCommand = {command:'playNext'};
// let avCommand = {command:'playPrevious'};
// let avCommand = {command:'fastForward'};
// let avCommand = {command:'rewind'};
// let avCommand = {command:'seek', parameter:10};
// let avCommand = {command:'setSpeed', parameter:2.6};
// let avCommand = {command:'setLoopMode', parameter:avSession.LoopMode.LOOP_MODE_SINGLE};
// let avCommand = {command:'toggleFavorite', parameter:"false"};
controller.sendControlCommand(avCommand, function (err) {
if (err) {
console.info(`SendControlCommand BusinessError: code: ${err.code}, message: ${err.message}`);
} else {
console.info('SendControlCommand successfully');
}
});
on('metadataChange')
on(type: 'metadataChange', filter: Array<keyof AVMetadata> | 'all', callback: (data: AVMetadata) => void)
Subscribes to the metadata change event.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The event 'metadataChange' is reported when the session metadata changes. |
filter | Array<keyof AVMetadata> | 'all' | Yes | The value 'all' indicates that any metadata field change will trigger the event, and Array<keyof AVMetadata> indicates that only changes to the listed metadata field will trigger the event. |
callback | (data: AVMetadata) => void | Yes | Callback used for subscription. The data parameter in the callback indicates the changed metadata. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600103 | The session controller does not exist. |
Example
controller.on('metadataChange', 'all', (metadata) => {
console.info(`on metadataChange assetId : ${metadata.assetId}`);
});
let metaFilter = ['assetId', 'title', 'description'];
controller.on('metadataChange', metaFilter, (metadata) => {
console.info(`on metadataChange assetId : ${metadata.assetId}`);
});
on('playbackStateChange')
on(type: 'playbackStateChange', filter: Array<keyof AVPlaybackState> | 'all', callback: (state: AVPlaybackState) => void)
Subscribes to the playback state change event.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The event 'playbackStateChange' is reported when the playback state changes. |
filter | Array<keyof AVPlaybackState> | 'all' | Yes | The value 'all' indicates that any playback state field change will trigger the event, and Array<keyof AVPlaybackState> indicates that only changes to the listed playback state field will trigger the event. |
callback | (state: AVPlaybackState) => void | Yes | Callback used for subscription. The state parameter in the callback indicates the changed playback state. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600103 | The session controller does not exist. |
Example
controller.on('playbackStateChange', 'all', (playbackState) => {
console.info(`on playbackStateChange state : ${playbackState.state}`);
});
let playbackFilter = ['state', 'speed', 'loopMode'];
controller.on('playbackStateChange', playbackFilter, (playbackState) => {
console.info(`on playbackStateChange state : ${playbackState.state}`);
});
on('sessionDestroy')
on(type: 'sessionDestroy', callback: () => void)
Subscribes to the session destruction event.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The event 'sessionDestroy' is reported when the session is destroyed. |
callback | () => void | Yes | Callback used for subscription. If the subscription is successful, err is undefined; otherwise, err is an error object. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600103 | The session controller does not exist. |
Example
controller.on('sessionDestroy', () => {
console.info('on sessionDestroy : SUCCESS ');
});
on('activeStateChange')
on(type: 'activeStateChange', callback: (isActive: boolean) => void)
Subscribes to the session activation state change event.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The event 'activeStateChange' is reported when the activation state of the session changes. |
callback | (isActive: boolean) => void | Yes | Callback used for subscription. The isActive parameter in the callback specifies whether the session is activated. The value true means that the service is activated, and false means the opposite. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600103 | The session controller does not exist. |
Example
controller.on('activeStateChange', (isActive) => {
console.info(`on activeStateChange : SUCCESS : isActive ${isActive}`);
});
on('validCommandChange')
on(type: 'validCommandChange', callback: (commands: Array<AVControlCommandType>) => void)
Subscribes to valid command changes.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The event 'validCommandChange' is reported when the valid commands supported by the session changes. |
callback | (commands: Array<AVControlCommandType>) => void | Yes | Callback used for subscription. The commands parameter in the callback is a set of valid commands. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600103 | The session controller does not exist. |
Example
controller.on('validCommandChange', (validCommands) => {
console.info(`validCommandChange : SUCCESS : size : ${validCommands.size}`);
console.info(`validCommandChange : SUCCESS : validCommands : ${validCommands.values()}`);
});
on('outputDeviceChange')
on(type: 'outputDeviceChange', callback: (device: OutputDeviceInfo) => void): void
Subscribes to output device changes.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The event 'outputDeviceChange' is reported when the output device changes. |
callback | (device: OutputDeviceInfo) => void | Yes | Callback used for subscription. The device parameter in the callback indicates the output device information. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
6600103 | The session controller does not exist. |
Example
controller.on('outputDeviceChange', (device) => {
console.info(`on outputDeviceChange device isRemote : ${device.isRemote}`);
});
off('metadataChange')
off(type: 'metadataChange', callback?: (data: AVMetadata) => void)
Unsubscribes from metadata changes.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The event 'metadataChange' is reported when the session metadata changes. |
callback | (data: AVMetadata) => void | No | Callback used for subscription. The data parameter in the callback indicates the changed metadata. The callback parameter is optional. If it is not specified, all the subscriptions to the specified event are canceled for this session. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
Example
controller.off('metadataChange');
off('playbackStateChange')
off(type: 'playbackStateChange', callback?: (state: AVPlaybackState) => void)
Unsubscribes from playback state changes.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The event 'playbackStateChange' is reported when the playback state changes. |
callback | (state: AVPlaybackState) => void | No | Callback used for subscription. The state parameter in the callback indicates the changed playback state. The callback parameter is optional. If it is not specified, all the subscriptions to the specified event are canceled for this session. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
Example
controller.off('playbackStateChange');
off('sessionDestroy')
off(type: 'sessionDestroy', callback?: () => void)
Unsubscribes from the session destruction event.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The event 'sessionDestroy' is reported when the session is destroyed. |
callback | () => void | No | Callback used for unsubscription. If the unsubscription is successful, err is undefined; otherwise, err is an error object. The callback parameter is optional. If it is not specified, all the subscriptions to the specified event are canceled for this session. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
Example
controller.off('sessionDestroy');
off('activeStateChange')
off(type: 'activeStateChange', callback?: (isActive: boolean) => void)
Unsubscribes from session activation state changes.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The event 'activeStateChange' is reported when the session activation state changes. |
callback | (isActive: boolean) => void | No | Callback used for unsubscription. The isActive parameter in the callback specifies whether the session is activated. The value true means that the session is activated, and false means the opposite. The callback parameter is optional. If it is not specified, all the subscriptions to the specified event are canceled for this session. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
Example
controller.off('activeStateChange');
off('validCommandChange')
off(type: 'validCommandChange', callback?: (commands: Array<AVControlCommandType>) => void)
Unsubscribes from valid command changes.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The event 'validCommandChange' is reported when the supported commands change. |
callback | (commands: Array<AVControlCommandType>) => void | No | Callback used for unsubscription. The commands parameter in the callback is a set of valid commands. The callback parameter is optional. If it is not specified, all the subscriptions to the specified event are canceled for this session. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
Example
controller.off('validCommandChange');
off('outputDeviceChange')
off(type: 'outputDeviceChange', callback?: (device: OutputDeviceInfo) => void): void
Unsubscribes from output device changes.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
type | string | Yes | Event type. The event 'outputDeviceChange' is reported when the output device changes. |
callback | (device: OutputDeviceInfo) => void | No | Callback used for unsubscription. The device parameter in the callback indicates the output device information. The callback parameter is optional. If it is not specified, all the subscriptions to the specified event are canceled for this session. |
Error codes
For details about the error codes, see AVSession Management Error Codes.
ID | Error Message |
---|---|
6600101 | Session service exception. |
Example
controller.off('outputDeviceChange');
SessionToken
Describes the information about a session token.
Required permissions: ohos.permission.MANAGE_MEDIA_RESOURCES (available only to system applications)
System capability: SystemCapability.Multimedia.AVSession.Manager
System API: This is a system API.
Name | Type | Mandatory | Description |
---|---|---|---|
sessionId | string | Yes | Session ID. |
pid | number | Yes | Process ID of the session. |
uid | number | Yes | User ID. |
AVSessionType
Enumerates the session types supported by the session.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Name | Type | Description |
---|---|---|
audio | string | Audio session. |
video | string | Video session. |
AVSessionDescriptor
Declares the session descriptor.
System capability: SystemCapability.Multimedia.AVSession.Manager
System API: This is a system API.
Name | Type | Readable | Writable | Description |
---|---|---|---|---|
sessionId | string | Yes | No | Session ID. |
type | AVSessionType | Yes | No | Session type. |
sessionTag | string | Yes | No | Custom session name. |
elementName | ElementName | Yes | No | Information about the application to which the session belongs, including the bundle name and ability name. |
isActive | boolean | Yes | No | Whether the session is activated. |
isTopSession | boolean | Yes | No | Whether the session is the top session. |
outputDevice | OutputDeviceInfo | Yes | No | Information about the output device. |
AVControlCommandType
Enumerates the commands that can be sent to a session.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Name | Type | Description |
---|---|---|
play | string | Play the media. |
pause | string | Pause the playback. |
stop | string | Stop the playback. |
playNext | string | Play the next media asset. |
playPrevious | string | Play the previous media asset. |
fastForward | string | Fast-forward. |
rewind | string | Rewind. |
seek | string | Seek to a playback position. |
setSpeed | string | Set the playback speed. |
setLoopMode | string | Set the loop mode. |
toggleFavorite | string | Favorite the media asset. |
AVControlCommand
Describes the command that can be sent to the session.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Name | Type | Mandatory | Description |
---|---|---|---|
command | AVControlCommandType | Yes | Command. |
parameter | LoopMode | string | number | No | Parameters carried in the command. |
AVMetadata
Describes the media metadata.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Name | Type | Mandatory | Description |
---|---|---|---|
assetId | string | Yes | Media ID. |
title | string | No | Title. |
artist | string | No | Artist. |
author | string | No | Author. |
album | string | No | Album name. |
writer | string | No | Writer. |
composer | string | No | composer. |
duration | number | No | Media duration, in ms. |
mediaImage | image.PixelMap | string | No | Pixel map or image path (local path or network path) of the image. |
publishDate | Date | No | Release date. |
subtitle | string | No | Subtitle. |
description | string | No | Media description. |
lyric | string | No | Lyric file path (local path or network path). |
previousAssetId | string | No | ID of the previous media asset. |
nextAssetId | string | No | ID of the next media asset. |
AVPlaybackState
Describes the information related to the media playback state.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Name | Type | Mandatory | Description |
---|---|---|---|
state | PlaybackState | No | Playback state. |
speed | number | No | Playback speed. |
position | PlaybackPosition | No | Playback position. |
bufferedTime | number | No | Buffered time. |
loopMode | LoopMode | No | Loop mode. |
isFavorite | boolean | No | Whether the media asset is favorited. |
PlaybackPosition
Describes the information related to the playback position.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Name | Type | Mandatory | Description |
---|---|---|---|
elapsedTime | number | Yes | Elapsed time, in ms. |
updateTime | number | Yes | Updated time, in ms. |
OutputDeviceInfo
Describes the information related to the output device.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Name | Type | Mandatory | Description |
---|---|---|---|
isRemote | boolean | Yes | Whether the device is connected. |
audioDeviceId | Array<number> | Yes | IDs of output devices. |
deviceName | Array<string> | Yes | Names of output devices. |
PlaybackState
Enumerates the media playback states.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Name | Value | Description |
---|---|---|
PLAYBACK_STATE_INITIAL | 0 | Initial. |
PLAYBACK_STATE_PREPARE | 1 | Preparing. |
PLAYBACK_STATE_PLAY | 2 | Playing. |
PLAYBACK_STATE_PAUSE | 3 | Paused. |
PLAYBACK_STATE_FAST_FORWARD | 4 | Fast-forwarding. |
PLAYBACK_STATE_REWIND | 5 | Rewinding. |
PLAYBACK_STATE_STOP | 6 | Stopped. |
LoopMode
Enumerates the loop modes of media playback.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Name | Value | Description |
---|---|---|
LOOP_MODE_SEQUENCE | 0 | Sequential playback. |
LOOP_MODE_SINGLE | 1 | Single loop. |
LOOP_MODE_LIST | 2 | Playlist loop. |
LOOP_MODE_SHUFFLE | 3 | Shuffle. |
AVSessionErrorCode
Enumerates the error codes used in the media session.
System capability: SystemCapability.Multimedia.AVSession.Core
System API: This is a system API.
Name | Value | Description |
---|---|---|
ERR_CODE_SERVICE_EXCEPTION | 6600101 | Session service exception. |
ERR_CODE_SESSION_NOT_EXIST | 6600102 | The session does not exist. |
ERR_CODE_CONTROLLER_NOT_EXIST | 6600103 | The session controller does not exist. |
ERR_CODE_REMOTE_CONNECTION_ERR | 6600104 | The remote session connection failed. |
ERR_CODE_COMMAND_INVALID | 6600105 | Invalid session command. |
ERR_CODE_SESSION_INACTIVE | 6600106 | The session is not activated. |
ERR_CODE_MESSAGE_OVERLOAD | 6600107 | Too many commands or events. |