gpt4 book ai didi

matlab - Matlab关于Audioplayer GUI的问题

转载 作者:行者123 更新时间:2023-12-02 22:49:17 25 4
gpt4 key购买 nike

我对Matlab很陌生,我正在尝试制作一个有3个按钮的程序。

问题1:

按钮1将链接到音频文件(.wav)
因此,当我按下它时,按钮1将“选择”第一个音频文件。

按钮2将链接到另一个音频文件(.wav)
因此,当我按下它时,按钮2将“选择”第二个音频文件。

然后,我需要按按钮3播放所选的声音文件,具体取决于我首先按哪个按钮(按钮1 /按钮2)

所以我当前的代码是这样的:
按钮1和2:

[FileName,PathName] = uigetfile({'*.wav'},'Load Wav File');
[x,Fs] = wavread([PathName '/' FileName]);

按钮3:
player = audioplayer(x,Fs);
play(player);

好的,所以我的第一个问题是,当我运行此代码时,必须手动选择文件。我不太确定如何使它已经链接到文件,因此在这方面我需要帮助...

我的第二个问题实际上是关于音频播放器的。
对于按钮3,它实际上不起作用...并且没有声音播放。
我之前尝试过 sound (x,Fs),但我在网上搜索,他们说我必须手动给命令清晰的声音以阻止.wav文件继续。

如何解决这个问题?因为我想如果我在代码中使用第四个按钮:
stop(player)

这给了我一个错误。

最佳答案

我的第一个答案开始变得有些混乱,因此我将在此处发布一个可以正常工作的简单示例。在此GUI中,有3个按钮(播放,暂停和停止),以及一个播放的.wav文件(piano2.wav)。

function varargout = AudioTest(varargin)

gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @AudioTest_OpeningFcn, ...
'gui_OutputFcn', @AudioTest_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%% Opening function %%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



function AudioTest_OpeningFcn(hObject, eventdata, handles, varargin)


handles.output = hObject;
handles.myPlayer=[];

% Update handles structure

guidata(hObject, handles);





function varargout = AudioTest_OutputFcn(hObject, eventdata, handles)


varargout{1} = handles.output;


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%% Executed on press of Play button %%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function Play_Callback(hObject, eventdata, handles)

[x,Fs]=wavread('piano2.wav');
handles.myPlayer=audioplayer(x,Fs);
play(handles.myPlayer);
guidata(hObject,handles);


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%% Executed on press of Pause button %%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function Pause_Callback(hObject, eventdata, handles)


pause(handles.myPlayer);


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%% Executed on press of Stop button %%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


function Stop_Callback(hObject, eventdata, handles)

stop(handles.myPlayer);

关于matlab - Matlab关于Audioplayer GUI的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32901413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com