音频引擎 PRO

Scripting 3.2.2 新增。主 App 脚本可连接播放器、效果器、混音器、乐器及输入输出节点,读取 PCM,也可不经过扬声器进行音频渲染。AVAudio* 类是全局 API;JSX 控件从 "scripting" 导入。

引擎拥有内建输入、输出及主混音器。自定义节点通过工厂创建,attach 后连接各总线,再启动引擎。自定义节点先 detach,再销毁或交给另一个引擎;内建节点随引擎释放。

音频会话、权限与生命周期

SharedAudioSession 配置整个进程共享的音频路由及录制/播放类别。使用设备音频前应明确配置;修改也影响其它脚本和媒体功能。设备输入需要系统麦克风授权和脚本音频引擎权限;文件操作另检查文件访问权限。支持主 App 脚本;小组件、扩展、远程渲染与后台 JS 执行器不能创建引擎。

清理前保留引擎、活动节点和缓冲区的引用。通过 await 确定图操作顺序。stop() 取消待播放项目和 Source 队列数据,pause() 保留播放位置。配置或媒体服务变化时,通过 onEvent 与 getState() 检查状态;needsRebuild 需要重建音频图。中断后不会自动恢复播放。在 finally 中释放资源;撤权后仍可停止与销毁。

播放票据按指定原生完成点报告结果:dataConsumed 表示播放器已接纳样本,dataRendered 表示已经渲染,dataPlayedBack 等待输出播放。手动渲染支持前两种,不能证明设备已经播放。票据取消时返回取消原因。

完整 index.tsx

将此目录作为脚本打开并运行 index.tsx。示例将循环旋律连接到 EQ、延迟和混响,支持效果旁路、音量、播放器暂停/继续。停止会释放图,再点构建即可重新播放;关闭页面也清理资源。示例会激活/停用共享会话,请不要与其它设备音频脚本同时运行。

点击文档的示例入口即可运行,完整代码见同级 index.tsx。