aardio 文档

sys.waveOut 库模块帮助文档

波形音频输出

sys 成员列表 #

sys.waveOut #

把 16 位 PCM 送往系统默认播放设备(Windows waveOut)。
只接收 PCM,不解码;WAV 文件需先解析出格式和音频数据,MP3 可先用 sys.mediaFoundation.mp3Decoder 解码。
设备异步播放,PCM 一直保留到 close。所有方法在创建对象的线程调用。
使用指南

sys.waveOut(options) #

打开默认播放设备,失败返回 null,错误信息。
options 必须指定 sampleRate(Hz)与 channels(1 或 2);
可选 volume=1(0..1,软件音量,不改系统音量),bitsPerSample 只能是 16。
可直接传入 sys.mediaFoundation.mp3Decoder 的 format 字段。

返回对象:sysWaveOutObject

sysWaveOutObject 成员列表 #

sysWaveOutObject.close() #

立即停止播放并释放设备与全部 PCM,可重复调用。成功返回 true。
失败返回 null,err 并保留仍被设备引用的内存,可再次调用 close。

sysWaveOutObject.completedBytes #

设备已播放完的 PCM 字节数,poll 时更新。
等于 totalBytes 表示已写入的数据全部播完

sysWaveOutObject.format #

输出格式:codec="pcm",sampleRate,channels,bitsPerSample=16

sysWaveOutObject.handle #

waveOut 设备句柄,close 后为 null

sysWaveOutObject.playedSeconds #

设备报告的播放位置(秒),poll 时更新;不是扬声器声学测量

sysWaveOutObject.poll() #

刷新 completedBytes 与 playedSeconds,成功返回 true,失败返回 null,err。
不调用也会正常播放,只是这两个属性不更新。

sysWaveOutObject.totalBytes #

已提交给设备的 PCM 字节数

sysWaveOutObject.volume #

软件音量 0..1,修改后只影响之后写入的数据

sysWaveOutObject.wait(timeoutMs) #

等待已写入的数据全部播放完,期间处理窗口消息。成功返回 true,失败返回 null,err。
省略 timeoutMs 则一直等待;超时只结束等待,不停止播放。

sysWaveOutObject.write(pcm) #

追加 16 位交错 PCM(字符串或 buffer),成功返回 true,失败返回 null,err。
长度必须是 channels*2 的整数倍。数据会复制,返回后可以复用或修改原 buffer。
设备异步播放,write 立即返回。

Markdown 格式