HarmonyOS API:文件管理
版本:v3.1 Beta
@ohos.file.statvfs (文件系统空间统计)
更新时间: 2023-02-17 09:19
该模块提供文件系统相关存储信息的功能,向应用程序提供获取文件系统总字节数、空闲字节数的JS接口。
说明
本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本模块支持对错误码进行处理,错误码及其适配方式请参考错误码适配指导。
导入模块
import statvfs from '@ohos.file.statvfs';
statvfs.getFreeSize
getFreeSize(path:string):Promise<number>
异步方法获取指定文件系统空闲字节数,以Promise形式返回结果。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 需要查询的文件系统的文件路径 |
返回值:
类型 | 说明 |
Promise<number> | 返回空闲字节数 |
示例:
let path = "/dev";
statvfs.getFreeSize(path).then((number) => {
console.info("getFreeSize promise successfully, Size: " + number);
}).catch((err) => {
console.info("getFreeSize failed with error message: " + err.message + ", error code: " + err.code);
});
statvfs.getFreeSize
getFreeSize(path:string, callback:AsyncCallback<number>): void
异步方法获取指定文件系统空闲字节数,使用callback形式返回结果。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 需要查询的文件系统的文件路径 |
callback | AsyncCallback<number> | 是 | 异步获取空闲字节数之后的回调 |
示例:
let path = "/dev";
statvfs.getFreeSize(path, (err, number) => {
if (err) {
console.info("getFreeSize failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("getFreeSize callback successfully, Size: " + number);
}
});
statvfs.getTotalSize
getTotalSize(path: string): Promise<number>
异步方法获取指定文件系统总字节数,以Promise形式返回结果。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 需要查询的文件系统的文件路径 |
返回值:
类型 | 说明 |
Promise<number> | 返回总字节数 |
示例:
let path = "/dev";
statvfs.getTotalSize(path).then((number) => {
console.info("getTotalSize promise successfully, Size: " + number);
}).catch((err) => {
console.info("getTotalSize with error message: " + err.message + ", error code: " + err.code);
});
statvfs.getTotalSize
getTotalSize(path: string, callback: AsyncCallback<number>): void
异步方法获取指定文件系统总字节数,使用callback形式返回结果。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 需要查询的文件系统的文件路径 |
callback | AsyncCallback<number> | 是 | 异步获取总字节数之后的回调 |
示例:
let path = "/dev";
statvfs.getTotalSize(path, (err, number) => {
if (err) {
console.info("getTotalSize with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("getTotalSize promise successfully, Size: " + number);
}
});
@ohos.multimedia.medialibrary (媒体库管理)
更新时间: 2023-03-03 17:21
说明
该组件从API Version 6开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
导入模块
import mediaLibrary from '@ohos.multimedia.mediaLibrary';
mediaLibrary.getMediaLibrary8+
getMediaLibrary(context: Context): MediaLibrary
获取媒体库的实例,用于访问和修改用户等个人媒体数据信息(如音频、视频、图片、文档等)。
此接口仅可在Stage模型下使用。
系统能力:SystemCapability.Multimedia.MediaLibrary.Core
参数:
参数名 | 类型 | 必填 | 说明 |
context | Context | 是 | 传入Ability实例的Context。 |
返回值:
类型 | 说明 |
媒体库实例 |
示例:(从API Version 9开始)
// 获取mediaLibrary实例,后续用到此实例均采用此处获取的实例
const context = getContext(this);
let media = mediaLibrary.getMediaLibrary(context);
示例:(API Version 8)
import featureAbility from '@ohos.ability.featureAbility';
let context = featureAbility.getContext();
let media = mediaLibrary.getMediaLibrary(context);
mediaLibrary.getMediaLibrary
getMediaLibrary(): MediaLibrary
获取媒体库的实例,用于访问和修改用户等个人媒体数据信息(如音频、视频、图片、文档等)。
此接口仅可在FA模型下使用。
系统能力:SystemCapability.Multimedia.MediaLibrary.Core
返回值:
类型 | 说明 |
媒体库实例 |
示例:
let media = mediaLibrary.getMediaLibrary();
MediaLibrary
getFileAssets7+
getFileAssets(options: MediaFetchOptions, callback: AsyncCallback<FetchFileResult>): void
获取文件资源,使用callback方式返回异步结果。
需要权限:ohos.permission.READ_MEDIA
系统能力:SystemCapability.Multimedia.MediaLibrary.Core
参数:
参数名 | 类型 | 必填 | 说明 |
options | 是 | 文件获取选项 | |
callback | AsyncCallback<FetchFileResult> | 是 | 异步获取FetchFileResult之后的回调 |
示例:
async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
// 创建文件获取选项,此处参数为获取image类型的文件资源
let imagesFetchOp = {
selections: fileKeyObj.MEDIA_TYPE + '= ?',
selectionArgs: [imageType.toString()],
};
// 获取文件资源,使用callback方式返回异步结果
media.getFileAssets(imagesFetchOp, (error, fetchFileResult) => {
// 判断获取的文件资源的检索结果集是否为undefined,若为undefined则接口调用失败
if (fetchFileResult == undefined) {
console.error('get fetchFileResult failed with error: ' + error);
return;
}
// 获取文件检索结果集中的总数
const count = fetchFileResult.getCount();
// 判断结果集中的数量是否小于0,小于0时表示接口调用失败
if (count < 0) {
console.error('get count from fetchFileResult failed, count: ' + count);
return;
}
// 判断结果集中的数量是否等于0,等于0时表示接口调用成功,但是检索结果集为空,请检查文件获取选项参数配置是否有误和设备中是否存在相应文件
if (count == 0) {
console.info('The count of fetchFileResult is zero');
return;
}
console.info('Get fetchFileResult successfully, count: ' + count);
// 获取文件检索结果集中的第一个资源,使用callback方式返回异步结果
fetchFileResult.getFirstObject((error, fileAsset) => {
// 检查获取的第一个资源是否为undefined,若为undefined则接口调用失败
if (fileAsset == undefined) {
console.error('get first object failed with error: ' + error);
return;
}
console.info('fileAsset.displayName ' + '0 : ' + fileAsset.displayName);
// 调用 getNextObject 接口获取下一个资源,直到最后一个
for (let i = 1; i < count; i++) {
fetchFileResult.getNextObject((error, fileAsset) => {
if (fileAsset == undefined) {
console.error('get next object failed with error: ' + error);
return;
}
console.info('fileAsset.displayName ' + i + ': ' + fileAsset.displayName);
})
}
});
// 释放FetchFileResult实例并使其失效。无法调用其他方法
fetchFileResult.close();
});
}
getFileAssets7+
getFileAssets(options: MediaFetchOptions): Promise<FetchFileResult>
获取文件资源,使用Promise方式返回结果。
需要权限:ohos.permission.READ_MEDIA
系统能力:SystemCapability.Multimedia.MediaLibrary.Core
参数:
参数名 | 类型 | 必填 | 说明 |
options | 是 | 文件检索选项 |
返回值
类型 | 说明 |
文件数据结果集 |
示例:
async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
// 创建文件获取选项,此处参数为获取image类型的文件资源
let imagesFetchOp = {
selections: fileKeyObj.MEDIA_TYPE + '= ?',
selectionArgs: [imageType.toString()],
};
// 获取文件资源,使用Promise方式返回结果
media.getFileAssets(imagesFetchOp).then((fetchFileResult) => {
// 获取文件检索结果集中的总数
const count = fetchFileResult.getCount();
// 判断结果集中的数量是否小于0,小于0时表示接口调用失败
if (count < 0) {
console.error('get count from fetchFileResult failed, count: ' + count);
return;
}
// 判断结果集中的数量是否等于0,等于0时表示接口调用成功,但是检索结果集为空,请检查文件获取选项参数配置是否有误和设备中是否存在相应文件
if (count == 0) {
console.info('The count of fetchFileResult is zero');
return;
}
console.info('Get fetchFileResult successfully, count: ' + count);
// 获取文件检索结果集中的第一个资源,使用Promise方式返回异步结果
fetchFileResult.getFirstObject().then((fileAsset) => {
console.info('fileAsset.displayName ' + '0 : ' + fileAsset.displayName);
// 调用 getNextObject 接口获取下一个资源,直到最后一个
for (let i = 1; i < count; i++) {
fetchFileResult.getNextObject().then((fileAsset) => {
console.info('fileAsset.displayName ' + i + ': ' + fileAsset.displayName);
}).catch((error) => {
console.error('get next object failed with error: ' + error);
})
}
}).catch((error) => {
// 调用getFirstObject接口失败
console.error('get first object failed with error: ' + error);
});
// 释放FetchFileResult实例并使其失效。无法调用其他方法
fetchFileResult.close();
}).catch((error) => {
// 调用getFileAssets接口失败
console.error('get file assets failed with error: ' + error);
});
}
on8+
on(type: 'imageChange'|'audioChange'|'videoChange'|'fileChange', callback: Callback<void>): void
打开媒体库变更通知,使用callback方式返回异步结果。
系统能力:SystemCapability.Multimedia.MediaLibrary.Core
参数:
参数名 | 类型 | 必填 | 说明 |
type | 'imageChange'|'audioChange'|'videoChange'|'fileChange' | 是 | 媒体类型 'imageChange': 图片文件变更 'audioChange': 音频文件变更 'videoChange': 视频文件变更 'fileChange': 文件变更 |
callback | Callback<void> | 是 | 回调返回空 |
示例:
media.on('imageChange', () => {
// image file had changed, do something
})
off8+
off(type: 'imageChange'|'audioChange'|'videoChange'|'fileChange', callback?: Callback<void>): void
关闭媒体库变更通知,使用callback方式返回异步结果。
系统能力:SystemCapability.Multimedia.MediaLibrary.Core
参数:
参数名 | 类型 | 必填 | 说明 |
type | 'imageChange'|'audioChange'|'videoChange'|'fileChange' | 是 | 媒体类型 'imageChange': 图片文件变更 'audioChange': 音频文件变更 'videoChange': 视频文件变更 'fileChange': 文件变更 |
callback | Callback<void> | 否 | 回调返回空 |
示例:
media.off('imageChange', () => {
// stop listening successfully
})
createAsset8+
createAsset(mediaType: MediaType, displayName: string, relativePath: string, callback: AsyncCallback<FileAsset>): void
创建媒体资源,使用callback方式返回结果。
需要权限:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA
系统能力:SystemCapability.Multimedia.MediaLibrary.Core
参数:
参数名 | 类型 | 必填 | 说明 |
mediaType | 是 | 媒体类型 | |
displayName | string | 是 | 展示文件名 |
relativePath | string | 是 | 文件保存路径,可以通过getPublicDirectory获取不同类型文件的保存路径 |
callback | AsyncCallback<FileAsset> | 是 | 异步获取媒体数据FileAsset之后的回调 |
示例:
async function example() {
// 使用Callback方式创建Image类型文件
let mediaType = mediaLibrary.MediaType.IMAGE;
let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
const path = await media.getPublicDirectory(DIR_IMAGE);
media.createAsset(mediaType, 'imageCallBack.jpg', path + 'myPicture/', (error, fileAsset) => {
if (fileAsset != undefined) {
console.info('createAsset successfully, message');
} else {
console.error('createAsset failed with error: ' + error);
}
});
}
createAsset8+
createAsset(mediaType: MediaType, displayName: string, relativePath: string): Promise<FileAsset>
创建媒体资源,使用Promise方式返回结果。
需要权限:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA
系统能力:SystemCapability.Multimedia.MediaLibrary.Core
参数:
参数名 | 类型 | 必填 | 说明 |
mediaType | 是 | 媒体类型 | |
displayName | string | 是 | 展示文件名 |
relativePath | string | 是 | 相对路径,可以通过getPublicDirectory获取不同类型媒体文件的一层目录的relative path |
返回值
类型 | 说明 |
媒体数据FileAsset |
示例:
async function example() {
// 使用Promise方式创建Image类型文件
let mediaType = mediaLibrary.MediaType.IMAGE;
let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
const path = await media.getPublicDirectory(DIR_IMAGE);
media.createAsset(mediaType, 'imagePromise.jpg', path + 'myPicture/').then((fileAsset) => {
console.info('createAsset successfully, message = ' + JSON.stringify(fileAsset));
}).catch((error) => {
console.error('createAsset failed with error: ' + error);
});
}
getPublicDirectory8+
getPublicDirectory(type: DirectoryType, callback: AsyncCallback<string>): void
获取公共目录路径,使用callback方式返回结果。
系统能力:SystemCapability.Multimedia.MediaLibrary.Core
参数:
参数名 | 类型 | 必填 | 说明 |
type | 是 | 公共目录类型 | |
callback | AsyncCallback<string> | 是 | callback 返回公共目录路径 |
示例:
let DIR_CAMERA = mediaLibrary.DirectoryType.DIR_CAMERA;
media.getPublicDirectory(DIR_CAMERA, (error, dicResult) => {
if (dicResult == 'Camera/') {
console.info('getPublicDirectory DIR_CAMERA successfully');
} else {
console.error('getPublicDirectory DIR_CAMERA failed with error: ' + error);
}
});
getPublicDirectory8+
getPublicDirectory(type: DirectoryType): Promise<string>
获取公共目录路径,使用Promise方式返回结果。
系统能力:SystemCapability.Multimedia.MediaLibrary.Core
参数:
参数名 | 类型 | 必填 | 说明 |
type | 是 | 公共目录类型 |
返回值:
类型 | 说明 |
Promise<string> | 返回公共目录路径 |
示例:
async function example() {
let DIR_CAMERA = mediaLibrary.DirectoryType.DIR_CAMERA;
media.getPublicDirectory(DIR_CAMERA).then((dicResult) => {
if (dicResult == 'Camera/') {
console.info('getPublicDirectory DIR_CAMERA successfully');
} else {
console.error('getPublicDirectory DIR_CAMERA failed');
}
}).catch((error) => {
console.error('getPublicDirectory failed with error: ' + error);
});
}
getAlbums7+
getAlbums(options: MediaFetchOptions, callback: AsyncCallback<Array<Album>>): void
获取相册列表,使用callback 方式返回结果。
需要权限:ohos.permission.READ_MEDIA
系统能力:SystemCapability.Multimedia.MediaLibrary.Core
参数
参数名 | 类型 | 必填 | 说明 |
options | 是 | 相册获取条件 | |
callback | AsyncCallback<Array<Album>> | 是 | 异步获取Album列表之后的回调 |
示例:
async function example() {
let AlbumNoArgsfetchOp = {
selections: '',
selectionArgs: [],
};
media.getAlbums(AlbumNoArgsfetchOp, (error, albumList) => {
if (albumList != undefined) {
console.info('getAlbums successfully: ' + JSON.stringify(albumList));
} else {
console.error('getAlbums failed with error: ' + error);
}
})
}
getAlbums7+
getAlbums(options: MediaFetchOptions): Promise<Array<Album>>
获取相册列表,使用 promise 方式返回结果。
需要权限:ohos.permission.READ_MEDIA
系统能力:SystemCapability.Multimedia.MediaLibrary.Core
参数:
参数名 | 类型 | 必填 | 说明 |
options | 是 | 相册获取条件 |
返回值:
类型 | 说明 |
Promise<Array<Album>> | 返回Album列表 |
示例:
async function example() {
let AlbumNoArgsfetchOp = {
selections: '',
selectionArgs: [],
};
media.getAlbums(AlbumNoArgsfetchOp).then((albumList) => {
console.info('getAlbums successfully: ' + JSON.stringify(albumList));
}).catch((error) => {
console.error('getAlbums failed with error: ' + error);
});
}
release8+
release(callback: AsyncCallback<void>): void
释放MediaLibrary实例。
当后续不需要使用MediaLibrary实例中的方法时调用。
系统能力:SystemCapability.Multimedia.MediaLibrary.Core
参数:
参数名 | 类型 | 必填 | 说明 |
callback | AsyncCallback<void> | 是 | 无返回值 |
示例:
media.release(() => {
// do something
});
release8+
release(): Promise<void>
释放MediaLibrary实例。
当后续不需要使用MediaLibrary实例中的方法时调用。
系统能力:SystemCapability.Multimedia.MediaLibrary.Core
返回值:
类型 | 说明 |
Promise<void> | Promise实例,用于获取异步返回结果 |
示例:
media.release()
storeMediaAsset(deprecated)
storeMediaAsset(option: MediaAssetOption, callback: AsyncCallback<string>): void
保存媒体资源,以异步方法获取保存成功的URI,使用callback形式返回结果。
说明
从API version 6开始支持,从API version 9开始废弃。
系统能力:SystemCapability.Multimedia.MediaLibrary.Core
参数:
参数名 | 类型 | 必填 | 说明 |
option | 是 | 媒体资源选项。 | |
callback | AsyncCallback<string> | 是 | 媒体资源保存回调,返回保存成功后得到的URI。 |
示例:
let option = {
src : '/data/storage/el2/base/haps/entry/image.png',
mimeType : 'image/*',
relativePath : 'Pictures/'
};
mediaLibrary.getMediaLibrary().storeMediaAsset(option, (error, value) => {
if (error) {
console.error('storeMediaAsset failed with error: ' + error);
return;
}
console.info('Media resources stored. ');
// Obtain the URI that stores media resources.
});
storeMediaAsset(deprecated)
storeMediaAsset(option: MediaAssetOption): Promise<string>
保存媒体资源,以异步方法获取保存成功的URI,使用Promise形式返回结果。
说明
从API version 6开始支持,从API version 9开始废弃。
系统能力:SystemCapability.Multimedia.MediaLibrary.Core
参数:
参数名 | 类型 | 必填 | 说明 |
option | 是 | 媒体资源选项。 |
返回值:
类型 | 说明 |
Promise<string> | Promise实例,用于异步获取保存成功后得到的URI。 |
示例:
let option = {
src : '/data/storage/el2/base/haps/entry/image.png',
mimeType : 'image/*',
relativePath : 'Pictures/'
};
mediaLibrary.getMediaLibrary().storeMediaAsset(option).then((value) => {
console.info('Media resources stored.');
// Obtain the URI that stores media resources.
}).catch((error) => {
console.error('storeMediaAsset failed with error: ' + error);
});
startImagePreview(deprecated)
startImagePreview(images: Array<string>, index: number, callback: AsyncCallback<void>): void
启动图片预览界面并限定预览开始显示的图片。可以预览指定序号的单张本地图片(datashare://),也可以预览列表中的所有网络图片(https://)。使用callback方式进行异步回调。
说明
从API Version 9开始废弃。建议使用Image组件替代。
Image组件,可用于本地图片和网络图片的渲染展示。
系统能力:SystemCapability.Multimedia.MediaLibrary.Core
参数:
参数名 | 类型 | 必填 | 说明 |
images | Array<string> | 是 | 预览的图片URI('https://','datashare://')列表。 |
index | number | 是 | 开始显示的图片序号。 |
callback | AsyncCallback<void> | 是 | 图片预览回调,失败时返回错误信息。 |
示例:
let images = [
'datashare:///media/xxxx/2',
'datashare:///media/xxxx/3'
];
/* 网络图片使用方式
let images = [
'https://media.xxxx.com/image1.jpg',
'https://media.xxxx.com/image2.jpg'
];
*/
let index = 1;
mediaLibrary.getMediaLibrary().startImagePreview(images, index, (error) => {
if (error) {
console.error('startImagePreview failed with error: ' + error);
return;
}
console.info('Succeeded in previewing the images.');
});
startImagePreview(deprecated)
startImagePreview(images: Array<string>, callback: AsyncCallback<void>): void
启动图片预览界面,可以预览列表中首张本地图片(datashare://),也可以预览列表中的所有网络图片(https://)。使用callback方式进行异步回调。
说明
从API Version 9开始废弃。建议使用Image组件替代。
Image组件,可用于本地图片和网络图片的渲染展示。
系统能力:SystemCapability.Multimedia.MediaLibrary.Core
参数:
参数名 | 类型 | 必填 | 说明 |
images | Array<string> | 是 | 预览的图片URI('https://','datashare://')列表。 |
callback | AsyncCallback<void> | 是 | 图片预览回调,失败时返回错误信息。 |
示例:
let images = [
'datashare:///media/xxxx/2',
'datashare:///media/xxxx/3'
];
/* 网络图片使用方式
let images = [
'https://media.xxxx.com/image1.jpg',
'https://media.xxxx.com/image2.jpg'
];
*/
mediaLibrary.getMediaLibrary().startImagePreview(images, (error) => {
if (error) {
console.error('startImagePreview failed with error: ' + error);
return;
}
console.info('Succeeded in previewing the images.');
});
startImagePreview(deprecated)
startImagePreview(images: Array<string>, index?: number): Promise<void>
启动图片预览界面并限定预览开始显示的图片。可以预览指定序号的单张本地图片(datashare://),也可以预览列表中的所有网络图片(https://)。使用Promise方式进行异步回调。
说明
从API Version 9开始废弃。建议使用Image组件替代。
Image组件,可用于本地图片和网络图片的渲染展示。
系统能力:SystemCapability.Multimedia.MediaLibrary.Core
参数:
参数名 | 类型 | 必填 | 说明 |
images | Array<string> | 是 | 预览的图片URI('https://','datashare://')列表。 |
index | number | 否 | 开始显示的图片序号,不选择时默认为0。 |
返回值:
类型 | 说明 |
Promise<void> | Promise实例,用于异步获取预览结果,失败时返回错误信息。 |
示例:
let images = [
'datashare:///media/xxxx/2',
'datashare:///media/xxxx/3'
];
/* 网络图片使用方式
let images = [
'https://media.xxxx.com/image1.jpg',
'https://media.xxxx.com/image2.jpg'
];
*/
let index = 1;
mediaLibrary.getMediaLibrary().startImagePreview(images, index).then(() => {
console.info('Succeeded in previewing the images.');
}).catch((error) => {
console.error('startImagePreview failed with error: ' + error);
});
startMediaSelect(deprecated)
startMediaSelect(option: MediaSelectOption, callback: AsyncCallback<Array<string>>): void
启动媒体选择界面,以异步方法获取选择的媒体URI列表,使用callback形式返回结果。
说明
从API Version 9开始废弃。
系统能力:SystemCapability.Multimedia.MediaLibrary.Core
参数:
参数名 | 类型 | 必填 | 说明 |
option | 是 | 媒体选择选项。 | |
callback | AsyncCallback<Array<string>> | 是 | 媒体选择回调,返回选择的媒体URI(datashare://)列表。 |
示例:
let option : mediaLibrary.MediaSelectOption = {
type : 'media',
count : 2
};
mediaLibrary.getMediaLibrary().startMediaSelect(option, (error, value) => {
if (error) {
console.error('startMediaSelect failed with error: ' + error);
return;
}
console.info('Media resources selected.');
// Obtain the media selection value.
});
startMediaSelect(deprecated)
startMediaSelect(option: MediaSelectOption): Promise<Array<string>>
启动媒体选择界面,以异步方法获取选择的媒体URI列表,使用Promise形式返回结果。
说明
从API Version 9开始废弃。
系统能力:SystemCapability.Multimedia.MediaLibrary.Core
参数:
参数名 | 类型 | 必填 | 说明 |
option | 是 | 媒体选择选项。 |
返回值:
类型 | 说明 |
Promise<Array<string>> | Promise实例,用于异步获取选择的媒体URI(datashare://)列表。 |
示例:
let option : mediaLibrary.MediaSelectOption = {
type : 'media',
count : 2
};
mediaLibrary.getMediaLibrary().startMediaSelect(option).then((value) => {
console.info('Media resources selected.');
// Obtain the media selection value.
}).catch((error) => {
console.error('startMediaSelect failed with error: ' + error);
});