You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
4.3 KiB
116 lines
4.3 KiB
/*
|
|
* @Author: BATU1579
|
|
* @CreateDate: 2022-07-12 04:23:34
|
|
* @LastEditor: BATU1579
|
|
* @LastTime: 2022-08-16 03:04:29
|
|
* @FilePath: \\src\\types\\media.d.ts
|
|
* @Description: 多媒体模块
|
|
*/
|
|
declare module 'media' {
|
|
global {
|
|
/**
|
|
* @description: media 模块提供多媒体编程的支持。目前仅支持音乐播放和媒体文件扫描。后续会结合 UI 加入视频播放等功能。
|
|
*
|
|
* **注意!:**
|
|
*
|
|
* - 使用该模块播放音乐时是在后台异步播放的,在脚本结束后会自动结束播放,因此可能需要插入诸如 `sleep()` 的语句来使脚本保持运行。
|
|
*
|
|
* @example
|
|
* ```typescript
|
|
* // 播放音乐
|
|
* media.playMusic('/sdcard/1.mp3');
|
|
* // 让音乐播放完
|
|
* sleep(media.getMusicDuration());
|
|
* ```
|
|
*/
|
|
const media: Media;
|
|
}
|
|
|
|
interface Media {
|
|
/**
|
|
* @description: 扫描路径 path 的媒体文件,将它加入媒体库中;或者如果该文件以及被删除,则通知媒体库移除该文件。媒体库包括相册、音乐库等,因此该函数可以用于把某个图片文件加入相册。
|
|
* @param {string} path 媒体文件路径。
|
|
* @example
|
|
* ```typescript
|
|
* // 请求截图
|
|
* requestScreenCapture(false);
|
|
* // 截图
|
|
* let img = captureScreen();
|
|
* let path = '/sdcard/screenshot.png';
|
|
* // 保存图片
|
|
* img.saveTo(path);
|
|
* // 把图片加入相册
|
|
* media.scanFile(path);
|
|
* ```
|
|
*/
|
|
scanFile(path: string): void;
|
|
|
|
/**
|
|
* @description: 播放音乐文件 `path` 。如果文件不存在或者文件不是受支持的音乐格式,则抛出 `UncheckedIOException` 异常。
|
|
*
|
|
* **注意!:**
|
|
*
|
|
* - 该函数不会显示任何音乐播放界面。如果要使用音乐播放器播放音乐,请使用 `app.viewFile` 函数。
|
|
*
|
|
* @param {string} path 音乐文件路径。
|
|
* @param {number} [volume] 播放音量,为 0~1 的浮点数(默认为 1)。
|
|
* @param {boolean} [looping] 是否循环播放,如果为 `true` 则循环播放(默认为 `false` )。
|
|
* @example
|
|
* ```typescript
|
|
* // 传递第三个参数为 true 以循环播放音乐
|
|
* media.playMusic('/sdcard/1.mp3', 1, true);
|
|
* // 等待三次播放的时间
|
|
* sleep(media.getMusicDuration() * 3);
|
|
* ```
|
|
*/
|
|
playMusic(path: string, volume?: number, looping?: boolean): void;
|
|
|
|
/**
|
|
* @description: 把当前播放进度调整到时间 `msec` 的位置。如果当前没有在播放音乐,则调用函数没有任何效果。
|
|
* @param {number} msec 音乐进度,单位毫秒。
|
|
* @example
|
|
* ```typescript
|
|
* // 播放音乐
|
|
* media.playMusic('/sdcard/1.mp3');
|
|
* // 调整到30秒的位置
|
|
* media.musicSeekTo(30 * 1000);
|
|
* // 等待音乐播放完成
|
|
* sleep(media.getMusicDuration() - 30 * 1000);
|
|
* ```
|
|
*/
|
|
musicSeekTo(msec: number): void;
|
|
|
|
/**
|
|
* @description: 暂停音乐播放。如果当前没有在播放音乐,则调用函数没有任何效果。
|
|
*/
|
|
pauseMusic(): void;
|
|
|
|
/**
|
|
* @description: 继续音乐播放。如果当前没有播放过音乐,则调用该函数没有任何效果。
|
|
*/
|
|
resumeMusic(): void;
|
|
|
|
/**
|
|
* @description: 停止音乐播放。如果当前没有在播放音乐,则调用函数没有任何效果。
|
|
*/
|
|
stopMusic(): void;
|
|
|
|
/**
|
|
* @description: 检查当前是否正在播放音乐。
|
|
* @return {boolean} 如果正在播放音乐则为 `true` 。
|
|
*/
|
|
isMusicPlaying(): boolean;
|
|
|
|
/**
|
|
* @description: 获取当前音乐的时长。
|
|
* @return {number} 当前音乐的时长,单位毫秒。
|
|
*/
|
|
getMusicDuration(): number;
|
|
|
|
/**
|
|
* @description: 获取当前音乐的播放进度。
|
|
* @return {number} 当前音乐的播放进度(已经播放的时间),单位毫秒。
|
|
*/
|
|
getMusicCurrentPosition(): number;
|
|
}
|
|
}
|