通用增量压缩音频播放器。
同一实例接收一个连续的 MP3/OGG 等文件字节流,不是 PCM,不是独立 MP3 文件的播放列表。
创建/写入/结束/关闭均在同一 aardio 消息循环线程。
无需等完整文件。部分写入自动排队,缓冲超限会明确失败,不丢数据。
注意只写入确认是音频的数据:BASS 内部用 Media Foundation 探测无法识别的数据时,
可能占满 32 位进程的地址空间,详见指南「已知问题」。
只播放 MP3 可改用免费的 sys.mediaFoundation.streamingMp3Player。
使用指南
建议改用 sys.mediaFoundation.streamingMp3Player(不增加软件体积)
创建播放器。options 可省略。
可选 initialBytes=2048,maxInitialBytes=65536,maxBufferBytes=4194304,volume=1,autoPlay=true,onStart,onEnd,onError。
volume 为 0..1;autoPlay=false 可先缓存,调用 play 后播放。
aardio 层尚未送入 BASS 的字节数(不含 BASS 内部缓冲)。
初始化成功后为 bass.channel 对象,结束/关闭后为 null。不要自行 free,请调用播放器 close。
立即停止并释放本实例资源,可重复调用;不触发 onEnd。不影响其他播放器。
是否结束、关闭或失败。
失败信息。
标记没有后续输入。先送完缓存再发送 EOF;不会截断尚未播放的声音。可重复调用。
真正播放结束触发 onEnd。
可选 err 表示来源失败(错误字符串或含 message 的错误表):立即停止并触发 onError。
是否已调用 finish。
暂停播放,输入仍可继续,仍受缓存上限约束。
开始或继续播放,也可在尚未收到音频时调用。
已接收的编码字节总数。
buffering,playing,paused,ended,closed,failed。
消息泵等待真正播放完毕。成功 true,失败 null,错误字符串。
超时仅停止等待,不自动关闭;请按需 close。
追加编码文件字节。成功返回 true,失败返回 null,错误字符串。空块无操作,不代表 EOF。
内部复制数据,调用返回后可以复用输入 buffer。
bassStreamPlayerObject.onEnd = function(){
/*输入已结束且声音已播完,资源已释放*/
}
bassStreamPlayerObject.onError = function(err){
/*播放失败,资源已释放*/
}
bassStreamPlayerObject.onStart = function(){
/*首次启动播放请求,owner 为播放器;不是声卡首样本时间*/
}