如何粘贴音乐文件的audioinfo?

时间:2016-11-17 17:59:46

标签: matlab

我希望能够使用声音文件的audioinfo更新文本框。

我当前的解决方案给了我一个错误

info = audioinfo('music1.mp3');
set(handles.edit1,'String',info);

在控制台中运行info可以获得有关声音文件的所有信息,并将其存储在MATLAB右侧的工作区中。我希望所有这些信息都能更新文本框(edit1)。

错误:

While setting the 'String' property of 'UIControl':
String should be char, numeric or cell array datatype.

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

我建议使用uitable而不是'edit' uicontrol object'edit' uicontrol个对象只能是一行,因此无论如何都无法使用,替代方案'listbox'只能是一列,因此您需要sprintf / fprintf使数据适合的数据。

例如:

% Generate audio file
load handel.mat
filename = 'handel.wav';
audiowrite(filename,y,Fs);
clear y Fs

% Build dummy GUI
f = figure('ToolBar', 'none');
T = uitable('Parent', f, 'Units', 'Normalized', 'Position', [0.1 0.1 0.8 0.8]);

% Read data and add to table
info = audioinfo(filename);
T.RowName = fieldnames(info);
T.Data = struct2cell(info);

以下用户界面中的结果:

yay

这也允许您轻松操作数据(例如复制,编辑等)

答案 1 :(得分:-4)

您需要从matLab下载mp3read和写入功能

mp3read

现在使用info = mp3read('music.mp3')返回包含原始音频的数组。

然后,您可以使用result = mat2string(info)

将该数组转换为字符串

然后您可以在UI中设置结果......