aardio 文档

bass.streamPlayer 库模块帮助文档

bass 成员列表 #

bass.streamPlayer #

通用增量压缩音频播放器。
同一实例接收一个连续的 MP3/OGG 等文件字节流,不是 PCM,不是独立 MP3 文件的播放列表。
创建/写入/结束/关闭均在同一 aardio 消息循环线程。
无需等完整文件。部分写入自动排队,缓冲超限会明确失败,不丢数据。
注意只写入确认是音频的数据:BASS 内部用 Media Foundation 探测无法识别的数据时,
可能占满 32 位进程的地址空间,详见指南「已知问题」。
只播放 MP3 可改用免费的 sys.mediaFoundation.streamingMp3Player。
使用指南

建议改用 sys.mediaFoundation.streamingMp3Player(不增加软件体积)

bass.streamPlayer(options) #

创建播放器。options 可省略。
可选 initialBytes=2048,maxInitialBytes=65536,maxBufferBytes=4194304,volume=1,autoPlay=true,onStart,onEnd,onError。
volume 为 0..1;autoPlay=false 可先缓存,调用 play 后播放。

返回对象:bassStreamPlayerObject

bassStreamPlayerObject 成员列表 #

bassStreamPlayerObject.bufferedBytes #

aardio 层尚未送入 BASS 的字节数(不含 BASS 内部缓冲)。

bassStreamPlayerObject.channel #

初始化成功后为 bass.channel 对象,结束/关闭后为 null。不要自行 free,请调用播放器 close。

返回对象:basschannelObject

bassStreamPlayerObject.close() #

立即停止并释放本实例资源,可重复调用;不触发 onEnd。不影响其他播放器。

bassStreamPlayerObject.done #

是否结束、关闭或失败。

bassStreamPlayerObject.error #

失败信息。

bassStreamPlayerObject.finish(err) #

标记没有后续输入。先送完缓存再发送 EOF;不会截断尚未播放的声音。可重复调用。
真正播放结束触发 onEnd。
可选 err 表示来源失败(错误字符串或含 message 的错误表):立即停止并触发 onError。

bassStreamPlayerObject.inputEnded #

是否已调用 finish。

bassStreamPlayerObject.pause() #

暂停播放,输入仍可继续,仍受缓存上限约束。

bassStreamPlayerObject.play() #

开始或继续播放,也可在尚未收到音频时调用。

bassStreamPlayerObject.receivedBytes #

已接收的编码字节总数。

bassStreamPlayerObject.state #

buffering,playing,paused,ended,closed,failed。

bassStreamPlayerObject.wait(timeoutMs) #

消息泵等待真正播放完毕。成功 true,失败 null,错误字符串。
超时仅停止等待,不自动关闭;请按需 close。

bassStreamPlayerObject.write(data) #

追加编码文件字节。成功返回 true,失败返回 null,错误字符串。空块无操作,不代表 EOF。
内部复制数据,调用返回后可以复用输入 buffer。

bassStreamPlayerObject 事件列表 #

bassStreamPlayerObject.onEnd #

bassStreamPlayerObject.onEnd = function(){  
    /*输入已结束且声音已播完,资源已释放*/  
}

bassStreamPlayerObject.onError #

bassStreamPlayerObject.onError = function(err){  
    /*播放失败,资源已释放*/  
}

bassStreamPlayerObject.onStart #

bassStreamPlayerObject.onStart = function(){  
    /*首次启动播放请求,owner 为播放器;不是声卡首样本时间*/  
}

Markdown 格式