Main Content

audioplayer

用于播放音频的对象

说明

使用 audioplayer 对象播放音频数据。audioplayer 对象包含在播放过程中提供额外灵活性的属性。例如,您可以使用 audioplayer 对象函数暂停、继续或定义回调。

创建对象

描述

示例

player = audioplayer(Y,Fs) 使用采样率 Fs 为信号 Y 创建 audioplayer 对象。该函数返回音频播放器对象 player

player = audioplayer(Y,Fs,nBits) 对信号 Y 使用 nBits 的采样位数。

player = audioplayer(Y,Fs,nBits,ID) 使用 ID 标识的音频设备进行输出。

示例

player = audioplayer(recorder) 使用录音机对象 recorder 创建 audioplayer 对象。

player = audioplayer(recorder,ID) 从使用 ID 标识的音频设备进行输出的 recorder 创建对象。

输入参量

全部展开

音频信号,指定为数值数据的向量或二维数组。

输入采样的值范围取决于数据类型。

数据类型

样本值范围

int8

-128 至 127

uint8

0 至 255

int16

-32,768 至 32,767

singledouble

-1 至 1

数据类型: single | double | int8 | int16 | uint8

采样率(以赫兹为单位),指定为正标量。

采样率的有效值取决于系统的音频硬件。大多数设置支持的典型采样率为 8000、11,025、22,050、44,100、48,000、96,000 和 192,000 Hz。

此参量设置 SampleRate 属性。

数据类型: single | double

采样位数,指定为 16824。仅当信号包含浮点值时,才指定 nBits

nBits 的有效值取决于系统的音频硬件。

此参量设置 BitsPerSample 属性。

音频设备标识符,指定为整数。

要获取设备 ID,请使用 audiodevinfo 函数。

此参量设置 DeviceID 属性。

录音机对象,指定为 audiorecorder 对象。使用 audiorecorder 函数创建该对象。

属性

全部展开

采样率(以赫兹为单位),指定为正标量。

要初始设置 SampleRate 属性,请在创建 audioplayer 对象时使用 Fs 输入参量。创建对象后,您可以修改其 SampleRate 属性。

此 属性 为只读。

采样位数,返回为 81624

要设置 BitsPerSample 属性,请在创建 audioplayer 对象时使用 nBits 输入参量。

此 属性 为只读。

音频通道的数量,返回为 1(单声道)或 2(立体声)。

此 属性 为只读。

音频设备标识符,以整数形式返回。

要设置 DeviceID 属性,请在创建 audioplayer 对象时使用 ID 输入参量。

此 属性 为只读。

当前在音频输出设备上播放的样本,以正整数形式返回。

如果设备当前未播放音频,则 CurrentSample 是下一个要使用 playresume 方法播放的采样。

此 属性 为只读。

采样中音频数据的总长度,以非负整数形式返回。

此 属性 为只读。

音频播放器状态,返回 'off''on'

在播放开始时要执行的函数,指定为包含函数名称的字符向量,或者指定为函数句柄。

回调函数的前两个输入必须是 audioplayer 对象和 event 结构体。有关详细信息,请参阅计时器回调函数

在播放结束时要执行的函数,指定为包含函数名称的字符向量,或者指定为函数句柄。

回调函数的前两个输入必须是 audioplayer 对象和 event 结构体。有关详细信息,请参阅计时器回调函数

在播放期间重复执行的函数,指定为包含函数名称的字符向量,或者指定为函数句柄。要指定重复时间间隔,请使用 TimerPeriod 属性。

回调函数的前两个输入必须是 audioplayer 对象和 event 结构体。有关详细信息,请参阅计时器回调函数

计时器周期,指定为正标量。

TimerPeriodTimerFcn 回调的间隔时间(以秒为单位)。

标签,指定为字符串标量或字符向量。

用户定义的数据,指定为任意数据类型的值。使用此属性将任何附加数据与对象一起存储。

此 属性 为只读。

对象类名,返回为 'audioplayer'

对象函数

get查询 audioplayer 对象的属性值
isplaying确定播放是否正在进行
pause暂停播放 audioplayer 对象或暂停录制 audiorecorder 对象
playaudioplayer 对象播放音频
playblocking播放 audioplayer 对象中的音频,保持控制权直到播放完成
resume 从暂停状态继续播放 audioplayer 对象或继续录制 audiorecorder 对象
set设置 audioplayer 对象的属性值
stop停止播放 audioplayer 对象或停止录制 audiorecorder 对象

示例

全部折叠

加载并播放示例音频文件。

handel.mat 加载到工作区。该文件包含样本音频数据数组 y 和采样率 Fs

load handel.mat
whos y Fs
  Name          Size             Bytes  Class     Attributes

  Fs            1x1                  8  double              
  y         73113x1             584904  double              

创建 audioplayer 对象来播放该文件。

player = audioplayer(y,Fs);

在默认音频设备上播放该音频对象。

play(player);

从麦克风录制音频数据,然后播放录制的音频。

使用默认属性值创建 audiorecorder 对象。

recObj = audiorecorder;

用麦克风录制一段时长 5 秒的声音样本。

disp("Begin speaking.")
Begin speaking.
recDuration = 5; % record for 5 seconds
recordblocking(recObj,recDuration);
disp("End of recording.")
End of recording.

从录制中创建一个音频播放器对象,然后播放录制的样本。

playerObj = audioplayer(recObj);
play(playerObj);

局限性

  • MATLAB® Online™MATLAB Web App Server™ 中使用 audioplayer 时,存在以下限制:

    • 您无法从 audiorecorder 对象创建 audioplayer 对象。

    • 您无法更改现有 audioplayer 对象的采样率。

    • audioplayer 会忽略 nBits。在这种情况下,它会使用输出音频设备的默认采样位数来播放音频数据。

    • 采样率 Fs 的有效值可能与在 MATLAB 桌面中的值不同。

提示

  • audioplayer 函数支持所有 Windows® 和大多数 UNIX® 平台上的声音设备。

  • Google Chrome® 支持在 MATLAB OnlineMATLAB Web App Server 中使用 audioplayer

  • 注意

    使用 MATLAB OnlineMATLAB Web App Server 时的安全注意事项:MATLAB OnlineMATLAB Web App Server 中使用 audioplayer 时,某些功能和设置有助于您保护您的隐私。

    要减少不必要的应用程序使用麦克风的可能性,请关闭对音频设备的自动访问权限。您可以随时更改这些设置。对某网站授予一次权限后,您的浏览器可能会在将来访问该网站时自动访问您的麦克风。在最初允许访问后,可使用 Google Chrome 的浏览器设置撤消对特定网站的访问权限。

    您还可以使用 Google Chrome 中的私密浏览模式访问 MATLAB Online 网站或 MATLAB Web App Server。当您这样做时,Chrome® 会在您每次尝试访问麦克风时自动询问是否允许访问麦克风,而不管您的浏览器设置如何。

版本历史记录

在 R2006a 之前推出