How can I ensure that when I click the play button more than once in my MATLAB GUI, the audio is played only once, regardless of how many times I press the play button?
古いコメントを表示
I am making an audio equalizer in MATLAB guide. When I press the 'play' button more than once, it plays the audio signal as many times as I've pressed the button. What I want is that when I press the play button more than once, it should only play the audio signal once.
The code for play button is given below:
% PLAY BUTTON
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
audiofile = handles.fullpathname; % the input audio file is stored in "audiofile" variable.
[x, fs] = audioread(audiofile);
guidata(hObject, handles);
handles.CP=1;
% Storing the value of slider in respective variables.
slider_1 = get(handles.slider1, 'Value');
slider_2 = get(handles.slider2, 'Value');
slider_3 = get(handles.slider3, 'Value');
slider_4 = get(handles.slider4, 'Value');
slider_6 = get(handles.slider6, 'Value');
% Applying different filters on these variables.
filter1 = BPF63(x, slider_1);
filter2 = BPF250(x, slider_2);
filter3 = BPF1000(x, slider_3);
filter4 = BPF4000(x, slider_4);
filter6 = BPF16000(x, slider_6);
%Adding all these variables to make the new signal.
total = filter1 + filter2 + filter3 + filter4 + filter6;
sound(total,fs);
%Plotting the signals
plot(handles.axes1, 1:length(x),x);
grid on;
fourier = fft(x);
plot(handles.axes3, 1:length(fourier), abs(fourier));
grid on;
plot(handles.axes4, 1:length(total), total);
grid on;
total_fourier = fft(total);
plot(handles.axes5, 1:length(total_fourier), abs(total_fourier))
grid on;
end
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Audio and Video Data についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!