aardio 文档

sys.mediaFoundation.streamingMp3Player 库模块帮助文档

流式 MP3 播放

sys.mediaFoundation 成员列表 #

sys.mediaFoundation.streamingMp3Player #

Windows 原生流式 MP3 播放器,边收边播。
由 sys.mediaFoundation.mp3Decoder 解码、sys.waveOut 输出;不依赖 BASS、浏览器、HTTP 或第三方 DLL。
一个实例接收一条固定格式的连续 MP3,输入块可以不按帧对齐。
所有方法在创建对象的消息循环线程调用。
使用指南

sys.mediaFoundation.streamingMp3Player() #

返回对象:sysMfStreamingMp3PlayerObject

sys.mediaFoundation.streamingMp3Player(options) #

创建播放器,失败返回 null,错误信息。
options 可省略,默认 sampleRate=24000,channels=1,匹配 Edge TTS。
输入格式不同时必须指定实际 sampleRate/channels,不是重采样参数。
可选 volume=1(0..1,软件音量,不改系统音量)、maxPcmBytes=67108864、onStart/onEnd/onError。
播放无声但 playedSeconds 前进时,先用 sys.audioVolume.session() 检查本进程是否在音量合成器中被静音。

sysMfStreamingMp3PlayerObject 成员列表 #

sysMfStreamingMp3PlayerObject.callbackError #

用户事件函数抛出的错误;不向定时器外抛出。

sysMfStreamingMp3PlayerObject.cleanupError #

异常清理失败信息;可再次调用 close,不提前释放设备仍引用的内存。

sysMfStreamingMp3PlayerObject.close() #

立即停止并统一释放,幂等;不会触发 onEnd,也不影响其他实例。

sysMfStreamingMp3PlayerObject.done #

是否真正结束、失败或关闭。

sysMfStreamingMp3PlayerObject.error #

播放失败信息。

sysMfStreamingMp3PlayerObject.finish(err) #

正常结束输入,排空解码器后继续播放余音,不立即停止。可重复调用。
可选 err 表示来源失败(错误字符串或含 message 的错误表),立即中止并触发 onError。
真正播完触发 onEnd。

sysMfStreamingMp3PlayerObject.format #

输出 PCM 格式:sampleRate,channels,bitsPerSample=16。

sysMfStreamingMp3PlayerObject.inputEnded #

是否已正常结束输入。

sysMfStreamingMp3PlayerObject.maxPcmBytes #

累计 PCM 上限(字节)。

sysMfStreamingMp3PlayerObject.pcmBytes #

已提交声卡的 PCM 总字节数。

sysMfStreamingMp3PlayerObject.playedSeconds #

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

sysMfStreamingMp3PlayerObject.receivedBytes #

已送入解码器的 MP3 字节总数。

sysMfStreamingMp3PlayerObject.state #

buffering,playing,draining,ended,failed,closed。

sysMfStreamingMp3PlayerObject.wait(timeoutMs) #

消息泵等待真正播放结束。成功 true,失败 null,err。
超时只结束等待,不取消播放。不要在本播放器事件中调用。

sysMfStreamingMp3PlayerObject.write(data) #

追加 MP3 string/buffer,成功 true,失败 null,err。
同步复制并解码,声卡异步播放;返回后可以复用输入 buffer。
空块不是结束。解码/声卡/容量错误会中止播放。

sysMfStreamingMp3PlayerObject 事件列表 #

sysMfStreamingMp3PlayerObject.onEnd #

sysMfStreamingMp3PlayerObject.onEnd = function(){  
    /*正常输入已结束,所有待播缓冲已完成且资源已释放*/  
}

sysMfStreamingMp3PlayerObject.onError #

sysMfStreamingMp3PlayerObject.onError = function(err){  
    /*失败,已停止播放*/  
}

sysMfStreamingMp3PlayerObject.onStart #

sysMfStreamingMp3PlayerObject.onStart = function(){  
    /*首次提交 PCM 到声卡,owner 为播放器*/  
}

Markdown 格式