aardio 文档

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

sys.mediaFoundation 成员列表 #

sys.mediaFoundation.reader #

用系统自带 Media Foundation 读取、解码音视频文件(MP4、MOV、M4A、MP3、WAV、WMV 等)

sys.mediaFoundation.reader() #

返回对象:sysMfReaderObject

sys.mediaFoundation.reader(path,options) #

打开媒体文件,失败返回 null,错误信息。
可选参数 @options 可用字段:
hardware:是否允许硬件解码,默认 false;
videoProcessing:"advanced"(默认)或 "basic",选择系统视频处理器;
sampleRate:readAudio 输出的采样率,省略为源采样率,指定时由系统重采样;
channels:readAudio 输出的声道数 1 或 2,省略时与源相同(多于 2 声道的源混缩为立体声)

sysMfReaderObject 成员列表 #

sysMfReaderObject.close() #

关闭读取器并释放资源(对象被回收时也会自动调用)

sysMfReaderObject.eachFrame() #

for(bitmap,time,frame in sysMfReaderObject.eachFrame()){  
\t/*bitmap 是复用的 PARGB 位图*/  
}

sysMfReaderObject.lastError #

eachFrame 迭代中遇到的错误信息

sysMfReaderObject.path #

媒体文件完整路径

sysMfReaderObject.readAudio(seconds) #

读取音频并解码为 int16 交错 PCM(buffer),返回 PCM,起始时间(秒)。
可选指定要读取的秒数(按解码块边界会略多一点),省略则读取剩余全部音频。
读完返回 null,出错返回 null,错误信息

sysMfReaderObject.readFrame() #

按顺序读取下一帧,返回 位图,时间(秒),帧号(从 0 开始,按时间戳换算)。
位图是读取器复用的 PARGB 位图,下次读取会覆盖,需要保留请调用其 copy 函数。
读完返回 null,出错返回 null,错误信息

返回对象:gdipbitmapObject

sysMfReaderObject.seek(seconds) #

视频与音频同时定位到指定秒数,成功返回 true。
之后读取的首帧是离该时刻最近的帧,音频从该时刻开始

sysMfReaderObject.info 成员列表 #

媒体信息,没有视频或音频时对应字段为 null

sysMfReaderObject.info.audio #

音频信息 {sampleRate;channels;bitsPerSample;subtype;bitrate}。
调用 readAudio 后 sampleRate、channels 更新为解码输出格式,bitsPerSample 为 16

sysMfReaderObject.info.duration #

时长(秒)

sysMfReaderObject.info.video #

视频信息 {width;height;fps;frameRate;subtype;bitrate}

Markdown 格式