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

/*
* @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;
}
}