Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

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

-32768 至 32767

single

-1 至 1

double

-1 至 1

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

采样频率,单位为赫兹 (Hz),指定为数值标量。

采样率的有效值取决于 MATLAB® 允许的采样率以及系统上的具体音频硬件。MATLAB 的硬性限制为 1000 Hz <= Fs <= 384000 Hz,但还存在其他基于硬件的限制。大多数声卡支持的典型值有 8000、11025、22050、44100、48000 和 96000 Hertz。

数据类型: single | double

采样位数,指定为 81624

仅当信号 Y 包含浮点值时,才指定 nBitsnBits 的有效值取决于音频硬件。例如,根据您的音频硬件,nBits 可以是下列值之一:81624

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

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

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

属性

全部展开

此属性为只读

采样位数,以正整数形式返回。

此属性为只读

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

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

此属性为只读

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

此属性为只读

音频通道数,返回 12

此属性为只读

音频播放器状态,返回 onoff

以赫兹 (Hz) 为单位的采样频率,以数值标量形式返回。

要设置 SampleRate,请在构造 audioplayer 对象时使用 Fs 输入参数。

此属性为只读

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

标签,指定为字符向量。

此属性为只读

对象类名,返回为 'audioplayer'

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

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

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

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

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

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

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

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

计时器周期是 TimerFcn 回调的间隔时间(以秒为单位)。

对象函数

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

示例

全部折叠

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

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;

用麦克风录制一个时长为五秒钟的演讲样本。

disp('Start speaking.')
Start speaking.
recordblocking(recObj,5);
disp('End of Recording.');
End of Recording.

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

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

局限性

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

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

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

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

详细信息

全部展开

提示

  • Google Chrome™ 支持 MATLAB OnlineMATLAB Web App Server 中的音频播放。

版本历史记录

在 R2006a 之前推出