How can I make the function audioplayer global?

1 回表示 (過去 30 日間)
Magnus Woodgate
Magnus Woodgate 2016 年 3 月 11 日
コメント済み: Walter Roberson 2016 年 3 月 12 日
So basically i'm making a wav player that will apply some FX to the file that is loaded into the gui. There are currently just the 2 buttons "Load Wav" and "Play".
"Load Wav" searches for a file of the users choice as follows:
[FileName,PathName] = uigetfile({'*.wav'},'Load Wav File');
global x; %attempted to make the variables global so that the play callback can use the audioplayer function with (x, Fs)
global Fs;
[x,Fs] = audioread([PathName '/' FileName]);
handles.fileLoaded = 1;
guidata(hObject, handles);
Then in the "play" button is just:
player=audioplayer(x,Fs);
play(player);
The "Load Wav" button seems to store the data of the chosen file fine, however when the function for "playButton_Callback(hObject, eventdata, handles)" is used, it doesn't recognise the variables "x" or "Fs", even though they are stored as global variables.
Any help would be greatly appreciated, apologies if this is a simple question I'm relatively new to MatLab.

採用された回答

Walter Roberson
Walter Roberson 2016 年 3 月 12 日
global variables need to be redeclared as global in every function they are to be used in.
  2 件のコメント
Magnus Woodgate
Magnus Woodgate 2016 年 3 月 12 日
Hi I tried this in:
global x;
global Fs;
player = audioplayer(x,Fs);
play(player);
But the audio still wouldn't play. However for some reason, using the "playblocking" feature it would play the chosen sample but obviously this means I cannot pause/resume/stop the audio but instead have to wait for it to complete.
Is there any way I can use the "play" feature still whilst using the global variables created from using the "audioread" data?
Thanks.
Walter Roberson
Walter Roberson 2016 年 3 月 12 日
You are letting your player object go out of scope, which is resulting in the player object being deleted.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeAudio and Video Data についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by