用途:audiostreamer 是 MATLAB 中用于音频设备I/O的统一接口,支持仅播放、仅录音和全双工三种模式,适用于声卡或USB音频设备播放、麦克风或音频接口录音、全双工播放+录音(如声学测量、回环测试)以及设备与驱动枚举选择。需要 Audio Toolbox R2025a 或更高版本;start 与 write 方法在 R2026a 引入。
主要能力与用法:通过 Name-Value 构造,默认 Mode="player",录音时必须显式设置 Mode="recorder" 或 "full-duplex"。可设置 Driver、Player、Recorder、SampleRate、DeviceBufferSize、DeviceBitFormat、PlayerChannels、RecorderChannels、ExclusiveMode、ConstantLatency 等属性,这些属性在开始流式传输后锁定,需先 release 再改。提供 PlayerFcn、RecorderFcn、PlayerCompletedFcn、RecorderCompletedFcn、PlayerUnderrunFcn 回调,回调必须接收两个参数(对象与事件结构体)。播放用 play/write,录音用 record/read,全双工用 playrec;传输控制包括 start、stop、pause、resume、waitfor、release。另有 isPlaying、isRecording、getUnderrunCount、getStreamTime、measureLoopbackLatency 等查询诊断方法,以及 getDrivers、getPlayerNames、getRecorderNames、getAudioDevices 静态设备枚举。
限制:不支持 codegen,Simulink 仍用原有音频I/O模块;无 Audio Toolbox 时回退到 sound/soundsc、audioplayer/audiorecorder 或 audioDeviceWriter;纯文件读写用 audioread/audiowrite;DAQ 设备用 DAQ Toolbox;MIDI 用 mididevice。注意 audiostreamer 没有公开 setup() 方法,不要调用。release 会丢弃未播放样本,需先 waitfor。isvalid 在 release 后仍返回 true,需用 isempty 判断置空引用。具体定价与平台细节暂未提供。