Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсач_4win.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
484.27 Кб
Скачать

2 Разработка алгоритма информационных технологий

2.1 Составление функциональной схемы программы

Одним этапов создания плеера является разработка структуры проектируемого приложения, которое отражает структурное построение различных частей программы и их функциональное назначение. На рисунке 1 приведена функциональная схема программы.

Рисунок 1 - Функциональная схема программы.

Функциональная схема имеет три основных блока, таких как блок управления, файлом, блок управления воспроизведением и блок информации о файле.

Блок управления фалом включает в себя функцию открытия файла, после данного блока, алгоритм разветвляется и идет на два других блока.

Блок управления воспроизведением вкачает в себя функцию начало воспроизведения, остановки воспроизведения и прерывания воспроизведения.

Блок информации о файле выводит пользователю информацию о плеере, файле, статусе воспроизведения, дополнительную информацию о файле, график звука и график звука в отдельном окне.

2.2 Разработка интерфейса

Многим пользователем неважно, каким образом воспроизводится файл, как работает пауза и выводится график. Им важно, что бы запуская данный плеер, они могли сразу, без дополнительного обучения пользоваться всеми заявленными функциями. Интерфейс плеера создавался таким образом, что бы быть максимально понятным конечному числу пользователей. Все надписи в программе написаны на международном английском языке, что делает программу интернациональной и доступной для большего числа пользователе.

Интерфейс программы прост, эргономичен, и выполнен в одной цветовой гамме, что бы ни отвлекать и не запутать пользователя.

В плеере присутствуют основные функции работы со звуковым файлом: открыть файл, воспроизвести файл, остановить и прервать воспроизведение, кроме того в плеере есть ряд других функции которые расширяют функционал плеера, дают дополнительную информацию о файле и облегчают работу пользователя. На рисунке 2 можно увидеть скриншот графического интерфейса плеера с пояснениями.

Рисунок 2- скриншот графической оболочки плеера с пояснениями

На рисунке 2 приняты следующие обозначения элементов

Кнопка “Открытие файла для воспроизведения”

Кнопка “Воспроизведение файла”

Кнопка “Остановки воспроизведения”

Кнопка “Прерывная воспроизведения”

График звука

Кнопка “звука в новом окне”

Кнопка меню “работа с файлом”

Кнопка меню “управление воспроизведением”

Кнопка меню “дополнительная информации”

Текстовое поле выводящее пут файла

Текстовое поле выводящее статус воспроизведения

Текстовое поле выводящее временя звучание файла

Текстовое поле выводящее размер файла

Текстовое поле выводящее битрейт файла

Подробное разъяснение назначения и принципа работы каждой кнопки.

1) При нажатии на кнопку “open” появляется диалоговое окно открытия файла для воспроизведения, которое можно увидеть на рисунке 3. По умолчанию открывается папка, в которой лежат документы Matlab , фильтр файлов позволяет выбрать только файл нужного расширения media files (*.wav), также в ручную можно выбрать тип файла All Files. Затем аудиозапись считывается в переменную в виде массива чисел после переменная объявляется типом audioplayer, и начинается воспроизведение. В текстовое поле 10 выводится путь файла, а в поле 11 выводится сообщение о начале воспроизведение. В поле 12 выводится длительность звучания композиции, минуты и секунды разделены двоеточием. В поле 13 выводится размер воспроизводимого файла в килобайтах. В поле 14 выводится сообщение о том, какой звуковой файл, mono или stereo . В поле 15 выводится битрейт проигрываемого файла. В окне 5 строится график звука. Переменный которые понадобятся и в других функциях объявляются глобальными.

листинг программы реализующей функцией кнопки 1 представлен в приложении А

Рисунок 3- скриншот диалогового окно открытия файла

2) При нажатии на кнопку “play” происходит воспроизведение звукового файла и в поле 11 выводится сообщение о начале воспроизведение файла.

листинг кнопки

function playsounds_Callback(hObject, eventdata, handles)

y=handles.y;

resume(y);

set(handles.statustext,'String',' playback)

set(handles.statustext,'ForegroundColor','k')

set(handles.statustext,'FontSize',13)

3) При нажатии на кнопку pause происходит остановка воспроизведение звукового файла и в поле 11 выводится сообщение о остановка воспроизведения.

function pausesounds_Callback(hObject, eventdata, handles)

y=handles.y;

pause(y)

set(handles.statustext,'String','pause')

set(handles.statustext,'ForegroundColor','k')

set(handles.statustext,'FontSize',13)

4) При нажатии на кнопку stop происходит прерывание воспроизведение звукового файла и в поле 11 выводится сообщение о прерывание воспроизведения.

function stopsounds_Callback(hObject, eventdata, handles)

y=handles.y;

stop(y)

set(handles.statustext,'String','stop')

set(handles.statustext,'ForegroundColor','k')

set(handles.statustext,'FontSize',13)

5) в данном окне строится график звука, он служит в ознакомительных целях и строится автоматически при открытие файла. Для более детального рассмотрения графика звука, надо нажать на кнопку 6. По оси x откладываются отчеты по оси y амплитуда.

Листинг графика

plot(x,'-b')

6)При нажатие на кнопку “zoom” в новом окне открывается график звука ,который можно увидеть на рисунке 4, при этом имеются дополнительные возможности при работе с графиками, по оси x откладываются отчеты по оси y амплитуда.

Листинг графика

function pushbutton10_Callback(hObject, eventdata, handles)

x=handles.x;

figure(1), plot(x,'-b')

title('diagram of sound ')

xlabel('counts')

ylabel('amplitude ')

Рисунок 4- График звука в новом окне

Меню программы

Меню программы, который можно увидеть на рисунке 5 состоит из 3 пунктов, которые включают в себя другие подпункты.

Рисунок 5- Меню программы

7) При нажатие на кнопку меню File, появляется список изображенный на рисунок 6, состоящий из двух подпунктов Open(7.1) и Exit(7.2)

Рисунок 6- Подменю кнопки File

7.1) При нажатии на кнопку open происходит тоже самое, что и при нажатии кнопки open под номером 1 в главном окне программы. Пользователь выбирает путь к файлу, файл считывается и воспроизводится.

Данную функцию можно вызвать с помощью ‘горячих клавиш’ Ctrl+O, которое выполняет аналогичное действие во многих других программах

Листинг кнопки

Приложение А

7.2)При нажатии на кнопку Exit, воспроизведения плеера прерывается, и плеер завершает свою работу.

Листинг

function Exit1_Callback(hObject, eventdata, handles)

delete(handles.plotsounds)

8)При нажатие на кнопка меню Player, появляется список, изображенный на рисунке 7, состоящий из трех подпунктов play(8.1), pause(8.2) и stop(8.3)

Рисунок 7- Подменю кнопки Player

8.1) При нажатии на кнопку play происходит воспроизведение звукового файла и в поле 11 выводится сообщение о начале воспроизведение файла.

листинг кнопки

function play1_Callback(hObject, eventdata, handles)

y=handles.y;

resume(y);

set(handles.statustext,'String',' playback ')

set(handles.statustext,'ForegroundColor','k')

set(handles.statustext,'FontSize',13)

8.2) При нажатии на кнопку pause происходит остановка воспроизведение звукового файла и в поле 11 выводится сообщение о постановки на паузу.

листинг кнопки

function pause111_Callback(hObject, eventdata, handles)

y=handles.y;

pause(y)

set(handles.statustext,'String','pause')

set(handles.statustext,'ForegroundColor','k')

set(handles.statustext,'FontSize',13)

8.3) При нажатии на кнопку pause происходит остановка прерывание воспроизведение звукового файла и в поле 11 выводится сообщение о прерывание воспроизведения. Кнопка имеет стандартные параметры.

листинг кнопки

function stop1_Callback(hObject, eventdata, handles)

y=handles.y;

stop(y)

set(handles.statustext,'String','Стоп')

set(handles.statustext,'ForegroundColor','k')

set(handles.statustext,'FontSize',13)

9)При нажатие на кнопка меню About, появляется список, изображенный на рисунке 8, состоящий из двух подпунктов More sound info (9.1) и About (9.1)

Рисунок 8- Подменю кнопки About

9.1) При нажатии на кнопку More sound info откроется новое окно, в котором будет указана частота дискретизации в герцах и число бит на один отчет. Окно с выводимой информацией представлено на рисунке 9

Рисунок 9- Окно выводящее дополнительную информацию о файле

Листинг выводимого окна

function More_Callback(hObject, eventdata, handles)

b=handles.b;

f=handles.f;

str1=['returns the sample rate ',int2str(f),' Hz' ]

str2=['returns the number of bits ',int2str(b),' bit' ]

h = msgbox({str1;str2}, 'More sound info')

set(h, 'WindowStyle', 'modal')

9.2)При нажатии на кнопку About откроется новое окно, в котором содержится информация о разработчике, e-mail, место и дата создания. Окно с выводимой информацией представлено на рисунке 10

Рисунок 10- Окно выводящее информацию о разработчике

Листинг выводимого окна

function Untitled_1_Callback(hObject, eventdata, handles)

h = msgbox({' Wav Player for Matlab';'';'developed by: Fonov Aleksey';' Wakeup77794@gmail.com';'';' NRU “BelSU” March-May 2013'}, 'About')

set(h, 'WindowStyle', 'modal')

10) В это поле выводится путь проигрываемого файла

Листинг

Где FullName переменная текстового вида, в которую занесен путь файла.

set(handles.waytext, 'String', FullName)

set(handles.waytext,'ForegroundColor','k')

set(handles.waytext,'FontSize',9)

12) В это поле выводится длительность звучания композиции, минуты и секунды разделены двоеточием.

Листинг

Где siz размер массива в который занесен аудиофайл

timesec=round(siz(1)/f);

timemin=0;

while timesec>=60

timesec=timesec-60;

timemin=timemin+1;

end

str1=['time ',int2str(timemin),' : ',int2str(timesec),' minute' ]

set(handles.text11,'String',str1)

set(handles.text11,'ForegroundColor','k')

set(handles.text11,'FontSize',9)

11) В это поле выводится состоянии воспроизведение

Листинг

set(handles.statustext,'String','playback')

set(handles.statustext,'ForegroundColor','k')

set(handles.statustext,'FontSize',13)

13) В это поле выводится размер воспроизводимого файла в килобайтах.

Листинг

sizall=siz(1)*siz(2)*b/8192;

str2=['size ',int2str(sizall),' kb' ]

set(handles.text12,'String',str2)

set(handles.text12,'ForegroundColor','k')

set(handles.text12,'FontSize',9)

14) В это поле выводится сообщение о том, какой звуковой файл mono или stereo

Листинг

if siz(2)==1; str3='mono'; else str3='stereo'; end;

set(handles.text13,'String',str3)

set(handles.text13,'ForegroundColor','k')

set(handles.text13,'FontSize',9)

15) В это поле выводится битрейт проигрываемого файла.

Листинг

str4=[int2str(round(b*f/1024)),' бит/с' ]

set(handles.text14,'String',str4)

set(handles.text14,'ForegroundColor','k')

set(handles.text14,'FontSize',9)

16) При нажатие правой клавиши мыши на любое место программы за исключением кнопок, появляется контекстное меню из двух пунктов, изображенных на рисунке 11 play/pause(16.1) exit(16.2)

Рисунок 11- Окно контекстного меню

16.1) при нажатии на кнопку play/pause воспроизведение песни остановится или наоборот продолжится, если проигрывание файла уже было паузе

листинг

function pause2_Callback(hObject, eventdata, handles)

y=handles.y;

if isplaying(y)==0

resume(y);p='playback'

else

pause(y);p='pause';end

set(handles.statustext,'String',p)

set(handles.statustext,'ForegroundColor','k')

set(handles.statustext,'FontSize',13);

16.2) При нажатии на кнопку Exit воспроизведения плеера прерывается, и плеер завершает свою работу.

Листинг

function Exit1_Callback(hObject, eventdata, handles)

delete(handles.plotsounds)

Полный листинг программы находится в приложении В

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]