蓝紫™
DDZEB 完全自主知识产权图形图像开发平台
开放源码 免费使用 在线运行
图像、音视频及字体等相关,为渲染添加多媒体支持。
文件语言大小版本开发者最后更新
lands/media productionJavaScript5.3KBv1.0.0YB2024-10-16查看
lands/media source codeJavaScript14.0KBv1.0.0YB2024-10-16查看
一、简要介绍 二、接口方法一、简要介绍

在我们常用的渲染引擎 frag 以及 compute 中已经自带了图像纹理加载功能,但缺少音频以及视频加载以及更复杂的图像处理能力。media 库填补了空白,同时也为其它需要多媒体的场景提供了基础支持。

音频 FFT 频谱
音频 FFT 频谱:Audio Visualization
二、接口方法 2.1、audio(url, options = {}) => Promise

从 url 地址加载音频,并返回一个 HTMLAudioElement 对象。可选参数 options 包括:

  • loop:是否循环播放;
  • play:加载成功后是否立即播放;
  • speed:播放速度,缺省为 1 倍速。

    加载成功,返回对象附加属性/方法如下:

    • fft_pointsint,FFT 频率数据长度;
    • fft_buffer():获取当前 FFT 频率数据,返回 Uint8Array 类型对象。
    2.2、video(url, options = {}) => Promise

    从 url 地址加载音频,并返回一个 HTMLVideoElement 对象。可选参数 options 包括:

  • mute:是否静音播放;
  • loop:是否循环播放;
  • play:加载成功后是否立即播放;
  • speed:播放速度,缺省为 1 倍速。

    如果非静音播放,返回对象附加属性/方法如下:

    • fft_pointsint,FFT 频率数据长度;
    • fft_buffer():获取当前 FFT 频率数据,返回 Uint8Array 类型对象。
    2.3、image(url) => Promise

    加载图像,返回 HTMLImageElement 类型对象。返回对象附加属性/方法如下:

    • data(width, height):返回 ImageData 类型对象;
    • canvas(width, height):返回 canvas 类型对象;
    • blur(size, width, height):模糊处理,返回 ImageData 类型对象。
    2.4、cubemap(px, nx, py, ny, pz,nz) => Promise

    传入六张图像的地址,加载 Cubemap 图像序列。如果是加载蓝紫内置 Cubemap 资源,也可以只传一个参数:

    const images = await media.cubemap('C1');
    2.5、canvas(image, width, height)

    将图像、视频或 ImageData 等转换为一个 canvas 对象,width 以及 height 参数可选,用于调整宽高。返回 canvas 对象附加属性/方法如下:

    • data():获取 canvas 图像,返回 ImageData 类型对象。
    2.6、blur(image, size = 1)

    平均算法进行图像模糊。传入参数 image 为 ImageData 类型对象,返回值也是同样类型。参数 size 控制模糊大小。

    2.7、painter(sources) => Promise

    加载颜色桶,返回一个 4096 x 3 元素的二维数组,代表 4096 个 rgb 颜色,颜色分量为小数形式。

    2.8、painters(sources, options = {}) => Promise

    加载颜色桶为一个 ImageData 类型对象,每一行为一个颜色桶的 4096 个颜色数据。可设置参数 options.flipy = true 将颜色桶顺序设置为反向(即 ImageData 在 Y 方向翻转)。

    2.9、font(name, url) => Promise

    加载字体,字体被写入 DOM 并返回 FontFace 类型对象。

    2.10、pause()

    暂停所有已加载音频及视频的播放。

    2.11、resume()

    恢复所有已加载音频及视频的播放。

    2.12、stop()

    停止所有已加载音频及视频的播放,并移除媒体源。