一.打开matlab App Designer设计界面
在App Designer的代码视图中初始化参数,代码如下:
properties (Access = private) music_path = \'\'; % Description frameSize = 1024; end properties (Access = public) stop_flag = false; pause_flag = false; origin_flag = false; end
二.制作播放界面
1.打开音频文件
在App Designer中选择按钮,将按钮命名为选择音频文件,编写回调函数,代码如下:
function Button_7Pushed(app, event) [file,path] = uigetfile(\'*.*\'); app.music_path = fullfile(path,file); end
2.播放音频文件
在App Designer中选择按钮,将按钮命名为播放,编写回调函数,代码如下:
function Button_8Pushed(app, event) app.stop_flag = false; app.pause_flag = false; app.origin_flag = false; fileReader = dsp.AudioFileReader(app.music_path,"SamplesPerFrame",app.frameSize); deviceWriter = audioDeviceWriter("SampleRate",fileReader.SampleRate); while ~isDone(fileReader)
% 此处可以添加代码对原始音频信号实时处理 originalSignal = fileReader(); % 控制结束 if app.stop_flag == true break end % 控制暂停/继续 if app.pause_flag == true while(1) pause(0.001); if app.pause_flag == false break; end end end % 播放音频文件或者处理之后的音频文件 deviceWriter(originalSignal);
%如果需要和其他回调函数进行交互,比如实时读取用户输入的控制参数数据,需要添加代码pause(0.001) pause(0.001); end release(fileReader) release(deviceWriter) end
3.播放暂停和继续
在App Designer中选择按钮,将按钮命名为暂停/继续,编写回调函数,代码如下:
function Button_11Pushed(app, event) if app.pause_flag == false app.pause_flag = true; else app.pause_flag = false; end end
4.结束播放
在App Designer中选择按钮,将按钮命名为结束,编写回调函数,代码如下:
function Button_9Pushed(app, event) app.stop_flag = true; end
三,播放界面如下