跳到正文

Output 输出设备 API ​

提供音频输出设备与输出模块能力查询接口。

Output API - 音频输出 ​

output.getDevices ​

获取全部输出模块下的音频设备列表

无参数。

返回值

字段类型说明
devicesOutputDevice[]全部输出模块下的设备列表(按模块归属依次排列)
devices[].guidstring输出设备唯一标识符 GUID(格式为 {...};由于默认设备为全零 GUID,需结合 (entryGuid, guid) 作为唯一复合键)
devices[].namestring音频输出设备显示名称
devices[].entrystring提供该设备的输出模块显示名称
devices[].entryGuidstring提供该设备的输出模块 GUID(格式为 {...})
countintegerdevices 数组包含的设备总数

成功时 success 为 true;失败时返回 { success: false, error, code },code 见错误码。

guid 在本端点内不唯一。 foobar2000 用全零 GUID {00000000-0000-0000-0000-000000000000} 表示某个输出模块的「默认设备」,因此多个模块下会各出现一次全零 GUID。 请用 (entryGuid, guid) 组合作为设备的唯一键,不要只用 guid。

output.getEntries ​

获取全部输出模块(output entry)及其能力标志列表

无参数。

返回值

字段类型说明
entriesOutputEntry[]全部已安装的输出模块列表
entries[].guidstring输出模块唯一标识符 GUID(格式为 {...})
entries[].namestring输出模块显示名称(可能存在同名或空名称)
entries[].needsBitdepthConfigboolean该模块是否需要显式配置输出位深
entries[].needsDitherConfigboolean该模块是否需要配置抖动处理(Dithering)
entries[].supportsMultipleStreamsboolean该模块是否支持同时播放多路音频流
entries[].isHighLatencyboolean该模块是否声明为高延迟输出
entries[].isLowLatencyboolean该模块是否声明为低延迟输出
countintegerentries 数组包含的模块总数

成功时 success 为 true;失败时返回 { success: false, error, code },code 见错误码。

output.getSettings ​

获取各输出模块的显示名称(仅供参考展示;输出配置须在 foobar2000 首选项调整,切换设备请调用 config.setOutputDevice)

无参数。

返回值

字段类型说明
notestring固定的英文提示文本(指出首选项中修改输出设置的路径)
availableOutputsstring[]各输出模块显示名称列表(名称可能重复或为空且调用间顺序不固定;建议优先使用 output.getEntries 配合 GUID 唯一标识)

成功时 success 为 true;失败时返回 { success: false, error, code },code 见错误码。

实际输出设置通过 foobar2000 首选项管理。如需切换输出设备,请使用 config.setOutputDevice。

建议在新代码中避免使用 availableOutputs。 该字段仅包含模块显示名称数组,无法区分同名模块,且部分模块名称可能为空字符串。此外,该数组元素顺序取决于服务枚举顺序,在多次调用间不具稳定性,不可作为可靠索引使用。程序化识别与管理输出模块时,建议使用包含 GUID 的 output.getEntries。

运行时行为说明 ​

  • output.getSettings 仅提供只读发现信息。输出配置由 foobar2000 Preferences 管理,而非本 API。