【发布时间】:2020-01-10 20:31:14
【问题描述】:
如果在 Matlab 2016 的命令行中输入,以下行将创建一个 audiorecorder 对象,开始录制,停止录制,将录制的样本写入 wav,并从录制器对象播放样本(即,不来自新写入的 wav 文件):
rec = audiorecorder(44100, 16, 1);
record(rec); % User speaks now
stop(rec);
audiowrite('foo.wav', getaudiodata(rec), 44100);
play(rec);
我正在尝试将其划分为具有以下功能的三按钮 GUI(使用 GUIDE 创建):
- 开始按钮,用于启动创建的记录器
- 停止按钮,用于停止录音机并保存 wav 文件
- 播放按钮,用于播放录音机中的样本
(我们的想法是能够录制小文本样本,快速聆听质量的第一遍,并决定是否继续录制或前进到下一个样本。
在 GUI 的初始设置中创建记录器对象(除其他外):
function ReadingScript_OpeningFcn(hObject, eventdata, handles, varargin)
recorder = audiorecorder(Fs, nbits, nChannels);
启动记录器对象:
function startRecord_Callback(hObject, eventdata, handles)
global recorder
set(handles.status,'String', 'Recording');
record(recorder);
停止记录器对象并将样本保存到文件中:
function stopRecord_Callback(hObject, eventdata, handles)
global recorder
global wavname
stop(recorder);
audiowrite(wavname, getaudiodata(recorder), 44100)
播放样本:
function PlayBack_Callback(hObject, eventdata, handles)
global recorder
play(recorder)
除了播放样本之外,这里的一切都有效。样本被记录到记录器中,通过正确的按钮按下开始和停止,并保存一个 wav 文件。但样品不会播放。我什至知道播放按钮被触发是因为故意缺少分号,这导致记录器对象的详细信息被打印到屏幕上,这也验证了样本仍在其中。
我到底错过了什么,才能播放音频?
【问题讨论】:
标签: matlab matlab-guide playback