一.打開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
三,播放界面如下

