2016-11-17 4 views
1

Ich möchte in der Lage sein, ein Textfeld mit dem Audioinfo einer Sounddatei zu aktualisieren.Wie füge ich das Audioinfo einer Musikdatei ein?

Die aktuelle Lösung, die ich habe ist mir ein Fehler

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

Lauf info in der Konsole gibt mir alle Informationen über die Audio-Datei und speichert sie in dem Arbeitsbereich rechts von MATLAB. Ich möchte, dass alle diese Informationen ein Textfeld aktualisieren (edit1).

Fehler:

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

Kann jemand helfen?

+0

Wenn Sie [die Dokumentation] lesen (https://www.mathworks.com/help/matlab/ref/audioinfo.html#outputarg_info), würden Sie sehen, dass 'audioinfo' eine Struktur und kein Strin zurückgibt G. – excaza

+0

@excaza Wissen Sie, wie ich diese Struktur in einer Textbox auflisten würde? –

+0

Alle Informationen? Was ist, wenn das Feld leer ist? – excaza

Antwort

2

ich ein uitable eher als ein 'edit'uicontrol object verwenden würde empfehlen. 'edit' uicontrol Objekte können nur eine Zeile sein, so dass sie sowieso nicht verwendet werden können, und die Alternative 'listbox' kann nur eine Spalte sein, also müssten Sie die Daten sprintf/fprintf die Daten, um es passend zu bekommen.

Zum Beispiel:

% 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); 

Ergebnisse in der folgenden UI:

yay

Welche auch Sie die Daten leicht zu manipulieren (zB kopieren, bearbeiten, etc.)

-4

Sie müssen mp3read zum Herunterladen und schreiben Funktionalität von Matlab

mp3read

Jetzt info = mp3read('music.mp3') verwenden, die ein Array zurückgibt die rohe Audio enthält.

Dann können Sie das Array in einen String drehen result = mat2string(info)

Dann verwenden Sie das Ergebnis in der Benutzeroberfläche einstellen ...

+1

Was hat das mit der Frage zu tun? – excaza

+0

Ich hatte den Eindruck, dass er die rohen Audiodaten angezeigt haben wollte. – Yawnolly

+2

Wie ist ein Editierfeld gefüllt mit Doppelten eine nützliche Anzeige eines Sounds? – excaza

Verwandte Themen