Разработка мультимедиа
КУРСОВАЯ
РАБОТА
по теме
«Разработка мультимедиа»
Содержание
Введение
1. Постановка задачи
1.1 Назначение приложения
1.2 Разработка форм
2. Меню приложения
2.1 Меню для пользователей
2.2 Меню для администраторов
3. Описание форм
3.1 Форма DemoAudio.scx
3.2 Форма DemoVideo.scx
3.3 Форма o_programme.scx
3.4 Форма registr.scx
3.5 Форма spravka.scx
3.6 Форма vxod.scx
3.7 Класс vfpmci.vcx
4. Создание проекта
Заключение
Список
литературы
Введение
мультимедиа программа форма файл
Компьютеры были изобретены много лет назад, но мы
начали использовать их совсем недавно. Технический прогресс постоянно
развивается. Люди создают новые компьютерные технологии. Компьютер стал
неотъемлемой частью нашей повседневной жизни. Многие люди используют компьютеры
на работе, в школе и дома, но мы еще не осознали все преимущества и недостатки
компьютера.
Компьютеры помогают нам облегчить нашу жизнь. Мы можем
решить многие проблемы, используя компьютер. Мы можем купить одежду, еду и даже
автомобиль. Это устройство заменило печатную машину, кино и проигрыватель.
Мы можем рисовать картины при помощи специальных программ, производить точные
математические операции, или заниматься дизайном. Компьютеры используются в
каждой научной сфере. Они помогают развивать физику, химию, биологию,
математику и другие области науки.
Поэтому я решил сделать программу, благодаря которой
можно расслабиться сидя за компьютером. В этой программе можно слушать любимую
музыку и смотреть любимые фильмы, которые находятся у Вас на компьютере. Именно
поэтому я назвал ее «Мультимедиа».
1. Постановка задачи
1.1. Назначение приложения
Создание аудио- и видео проигрывателя
1.2. Разработка форм
В проект включено несколько форм. Вот перечень с их
описанием:
Форма
|
Выполняемая функция
|
DemoAudio.scx
|
Форма для проигрывания аудио файлов
|
DemoVideo.scx
|
Форма для проигрывания видео файлов
|
o_programme.scx
|
Форма, содержащая данные о программе
|
registr.scx
|
Форма для регистрации, изменения и удаления пользователей
|
spravka.scx
|
Форма для справки
|
vfpmci.vcx
|
Форма класса
|
vxod.scx
|
Форма входа в программу
|
2. Меню приложения
2.1. Меню для пользователей
SYSMENU TO
SET SYSMENU AUTOMATIC
DEFINE PAD _3tg14hdbk OF _MSYSMENU PROMPT "Мультимедиа" COLOR SCHEME 3
DEFINE PAD _3tg14hdbl OF _MSYSMENU PROMPT "Сервис" COLOR SCHEME
3PAD _3tg14hdbm OF _MSYSMENU PROMPT "Выход" COLOR SCHEME 3
ON PAD _3tg14hdbk OF _MSYSMENU ACTIVATE POPUP мультимеди
ON PAD _3tg14hdbl OF _MSYSMENU ACTIVATE POPUP сервисSELECTION PAD
_3tg14hdbm OF _MSYSMENU Quit
DEFINE POPUP мультимеди MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF мультимеди PROMPT "Аудио проигрыватель"BAR 2 OF
мультимеди PROMPT "Видео проигрыватель"SELECTION BAR 1 OF мультимеди
Do form sys(5)+"\Kursovaya\Programm\demoaudio.scx"SELECTION BAR 2 OF
мультимеди Do form sys(5)+"\Kursovaya\Programm\demovideo.scx"
DEFINE POPUP сервис MARGIN RELATIVE SHADOW COLOR SCHEME
4
DEFINE BAR 1 OF сервис PROMPT "Справка"BAR 2
OF сервис PROMPT "О программе"SELECTION BAR 1 OF сервис do form sys(5)+"\Kursovaya\Programm\spravka.scx"SELECTION
BAR 2 OF сервис do form sys(5)+"\Kursovaya\Programm\o_programme.scx"
2.2 Меню для администраторов
У меню администраторов появляется дополнительный пункт
«ADMIN», в котором администраторы могут регистрировать, изменять и удалять
пользователей.SYSMENU TOSYSMENU AUTOMATIC
DEFINE PAD _3tg14g2at OF _MSYSMENU
PROMPT "Мультимедиа" COLOR SCHEME 3
DEFINE PAD _3tg14g2au OF _MSYSMENU PROMPT
"Сервис" COLOR SCHEME 3PAD _3tg14g2av OF _MSYSMENU PROMPT
"Admin" COLOR SCHEME 3PAD _3tg14g2aw OF _MSYSMENU PROMPT
"Выход" COLOR SCHEME 3
ON PAD _3tg14g2at OF _MSYSMENU
ACTIVATE POPUP мультимеди
ON PAD _3tg14g2au OF _MSYSMENU ACTIVATE POPUP
сервисPAD _3tg14g2av OF _MSYSMENU ACTIVATE POPUP adminSELECTION PAD _3tg14g2aw
OF _MSYSMENU Quit
DEFINE POPUP мультимеди MARGIN RELATIVE SHADOW COLOR SCHEME
4
DEFINE BAR 1 OF мультимеди PROMPT "Аудио
проигрыватель"BAR 2 OF мультимеди PROMPT "Видео
проигрыватель"SELECTION BAR 1 OF мультимеди Do form
Sys(5)+"\Kursovaya\Programm\demoaudio.scx"SELECTION BAR 2 OF
мультимеди Do form Sys(5)+"\Kursovaya\Programm\demovideo.scx"
DEFINE POPUP сервис MARGIN RELATIVE SHADOW COLOR SCHEME
4
DEFINE BAR 1 OF сервис PROMPT "Справка"BAR 2
OF сервис PROMPT "О программе"SELECTION BAR 1 OF сервис do form
sys(5)+"\Kursovaya\Programm\spravka.scx"SELECTION BAR 2 OF сервис do
form sys(5)+"\Kursovaya\Programm\o_programme.scx"
DEFINE POPUP admin MARGIN RELATIVE
SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF admin PROMPT
"Пользователи"SELECTION BAR 1 OF admin Do form
sys(5)+"\Kursovaya\Programm\registr.scx"
3. Описание форм
3.1 Форма DemoAudio.scx
Форма DemoAudio.scx (см. рис.1) проигрывает
музыку, которую Вы выбрали у себя на компьютере.
Рис.1
CLASS vfpplayer AS container
*** ActiveX Control Event ***button,
shift, x, y.Parent.Timer1.Enabled = .f.interval.MouseUp
*** ActiveX Control Event ***button,
shift, x, y.Parent.Timer1.Enabled = .t.interval.Change
*** ActiveX Control Event
***this.Parent.oMedia(this.value)()volume.Scroll
*** ActiveX Control Event
***.Parent.oMedia.SetVolume(this.value)cmdopen.ClicklcFile= GETFILE("MP3|WMA|WAV")!EMPTY(lcFile)this.Parent.Open(lcFile,
thisform.HWnd).SetVolume(750).value = 0.max = .oMedia.GetSize().Play().Enabled
= .t.
ENDWITH
ENDPROCcmdplay.Clickthis.Parent
.oMedia.Play()
.Timer1.Enabled =
.t.cmdpause.Clickthis.Parent
.oMedia.Pause()
.Timer1.Enabled =
.f.cmdstop.Clickthis.Parent
.oMedia.Stop()
.Timer1.Enabled = .f.
.Interval.value =
0timer1.Timer.Parent.interval.value = this.Parent.oMedia.GetPosition()
ENDPROC
3.2 Форма DemoVideo.scx
Форма DemoVideo.scx (см. рис.2) показывает
видео, который Вы выбрали у себя на компьютере.
Рис. 2
CLASS video AS form
PROCEDURE
vfpplayer1.cmdOpen.ClicklcFile, lnDestWidth, lnDestHeight=
GETFILE('AVI,WMV')!EMPTY(lcFile)this.Parent
.oMedia.Open(lcFile, thisform.HWnd)
.oMedia.SetVolume(750)
.Interval.value = 0
.Interval.max = .oMedia.GetSize()
* Получить размеры виде кадра= 0= 0
.oMedia.GetVideoDimension(@lnDestWidth, @lnDestHeight)
* Определение фактических размеров области вывода видео=
lnDestHeight / thisform.Shape1.Height = lnDestWidth / thisform.Shape1.Width
lnKoeff = MAX(lnKVert, lnKHor)lnKoeff
< 1= 1= lnDestWidth / lnKoeff= lnDestHeight / lnKoeff
* Вычисляем новые значения координат левой верхней
точки
lnTop = thisform.Shape1.Top + 0.5 *
(thisform.Shape1.Height - lnHeight)= thisform.Shape1.Left + 0.5 *
(thisform.Shape1.Width - lnWidth)
* Устанавливаем новые размеры окна для видео
.oMedia.SetVideoRect(lnLeft, lnTop,
lnWidth, lnHeight)
.oMedia.Play()
.Timer1.Enabled = .t.
ENDWITH
3.3 Форма o_programme.scx
Форма o_programme.scx (см. рис.3) показывает
данные о программе.
Рис.3
CLASS form1 AS form
Top = 0= 0= 373= 600= .T.= "О программе"= RGB(240,240,240)=
"Form1"OBJECT label1 AS label WITH ;
AutoSize = .T., ;= .T., ;= 16, ;
FontCharSet = 204, ;= 0, ;= 0, ;=
"О программе:", ;= 27, ;= 24, ;= 12, ;= 146, ;=
"Label1"OBJECT command1 AS commandbutton WITH ;= 336, ;= 504, ;= 27,
;= 84, ;= "Закрыть", ;=
"Command1"OBJECT edit1 AS editbox WITH ;= "", ;= 1, ;= 0,
;= 276, ;= 24, ;= .T., ;= 48, ;= 564, ;= RGB(240,240,240), ;= RGB(240,240,240),
;= RGB(255,255,255), ;= RGB(255,255,255), ;
Value = [Программа создана при помощи книги
"Visual Foxpro 9 - Клепинин и Агафонова".] + CHR(13) + [В этой
программе Вы сможете слушать музыку и смотреть видео. ] + CHR(13) + [Эта
программа не требует никаких навыков и умений, необходимо только
зарегестрироваться и наслаждаться любимыми музыкой и видео, находящихся у Вас
на компьютере.], ;
ControlSource = "", ;= .F.,
;= "Edit1"command1.Click.Release()
ENDPROC
3.4 Форма registr.scx
В форме registr.scx (см. рис.4) можно не только
зарегистрировать пользователей, но также их изменять и удалять.
Рис. 4
CLASS form1 AS form
PROCEDURE LoadDELETE off=SYS(5)NOT
USED('rega')F1+"\Kursovaya\dbfs\rega.dbf" exclusive IN 0 rega c
PROCEDURE cmdsave.Click=SYS(5)NOT
USED('rega')F1+"\Kursovaya\dbfs\rega.dbf" exclusive IN 0 rega
c=2BLANK=thisform.pageframe1.Pagedit.text2.valueLogin WITH
thisform.pageframe1.pagedit.text1.ValuePass WITH
thisform.pageframe1.pagedit.text2.Valueadm WITH
thisform.pageframe1.pagedit.text3.Value =0
thisform.pageframe1.pagedit.Enabled=.F..pageframe1.paglist.Enabled=.T..pageframe1.ActivePage=1.CmdAppendblank.Enabled=.T..CmdEditblank.Enabled=.T..CmdDelblank.Enabled=.T.cmdcansel.Click.CmdAppendblank.Enabled=.T..CmdEditblank.Enabled=.T..CmdDelblank.Enabled=.T..pageframe1.pagedit.Enabled=.F..pageframe1.paglist.Enabled=.T..pageframe1.ActivePage=1=0cmdappendblank.Click=2.CmdAppendblank.Enabled=.F..CmdEditblank.Enabled=.F..CmdDelblank.Enabled=.F..pageframe1.pagedit.Enabled=.T..pageframe1.paglist.Enabled=.F..pageframe1.ActivePage=2.pageframe1.pagedit.text1.Value="".pageframe1.pagedit.text2.Value=0.pageframe1.pagedit.text3.Value=0cmdeditblank.Click=1.CmdAppendblank.Enabled=.F..CmdEditBlank.Enabled=.F..CmdDelblank.Enabled=.F..pageframe1.paglist.Enabled=.F..pageframe1.pagedit.Enabled=.T..pageframe1.ActivePage=2.pageframe1.pagedit.text1.Value=rega.login.pageframe1.pagedit.text2.Value=rega.pass.pageframe1.pagedit.text3.Value=rega.admcmddelblank.ClickDELETE
onnRetMsgBox,nRecno=0=0
nRetMsgBox=MESSAGEBOX("удалить
текущую запись?",4+32+256,"удаление")
IF
nRetMsgBox=6!EOF()EOF()BOTTOMEOF()TOP.REFRESH()cmdexit.ClickUSED([regs])rega
ENDIF.Release()
3.5 Форма spravka.scx
Форма spravka.scx (см. рис.5) выдает справку по
пользованию всего приложения.
Рис. 5
CLASS form1 AS form
Top = 2= 24= 371= 612= .T.= "Справка"= "Form1"OBJECT
command1 AS commandbutton WITH ;= 336, ;= 504, ;= 27, ;= 96, ;= "Закрыть", ;= "Command1"OBJECT
edit1 AS editbox WITH ;= 1, ;= 0, ;= 276, ;= 24, ;= .T., ;
Top = 48, ;= 576, ;= RGB(240,240,240), ;= [Для того
чтобы можно было слушать музыку, необходимо: 1) В верхнем контекстном меню
выбрать строчку "МУЛЬТИМЕДИА"] + CHR(13) + [2) Далее в появившемся
меню выбрать строчку "АУДИО ПРОИГРЫВАТЕЛЬ"] + CHR(13) + [3) Затем в
появившейся программе нажать на кнопку "ОТКРЫТЬ" и выбрать нужный Вам
файл.] + CHR(13) + [Для того чтобы можно было смотреть видео, необходимо:] +
CHR(13) + [1) В верхнем контекстном меню выбрать строчку
"МУЛЬТИМЕДИА"] + CHR(13) + [2) Далее в появившемся меню выбрать
строчку "ВИДЕО ПРОИГРЫВАТЕЛЬ"] + CHR(13) + [3) Затем в появившейся
программе нажать на кнопку "ОТКРЫТЬ" и выбрать нужный Вам файл.] +
CHR(13) + [Если Вы хотите зарегистрироваться еще раз или зарегистрировать
друзей, знакомых или родных обращайтесь к администратору.] + CHR(13) + [***Для
того чтобы зарегистрировать, изменить или удалить пользователя(ей), нужно:] +
CHR(13) + [1) В верхнем контекстном меню выбрать строчку "ADMIN"] +
CHR(13) + [2) В появившемся меню выбрать строчку "ПОЛЬЗОВАТЕЛИ"] +
CHR(13) + [3) Затем в появившемся окне можно регистрировать, изменять или
удалять пользователя(ей)] + CHR(13) + [***Действие доступно только для
администратора] + CHR(13) + [Для того чтобы выйти из программы, необходимо:] +
CHR(13) + [В верхнем контекстном меню нажать на строчку "ВЫХОД"], ;
ControlSource = "", ;=
"Edit1"OBJECT label1 AS label WITH ;
AutoSize = .T., ;= .T., ;= 16, ;
FontCharSet = 204, ;= 0, ;= 0, ;=
"Справка", ;= 27, ;= 24, ;=
12, ;= 91, ;= 1, ;= "Label1"Loadcommand1.Click
thisform.release()
3.6 Форма vxod.scx
Форма vxod.scx (см. рис.6) определяет кем будет
вновь вошедший и взависимости от того, кем он будет (администратор или
пользователь) и будет выводиться соответствующее меню.
Рис. 6
CLASS formset AS formset
PROCEDURE form1.Load=SYS(5)NOT
USED([Rega])F2+"\Kursovaya\dbfs\rega.dbf" exclusive IN 0regaregaon
login + STR(pass) To loginidxORDER TO
loginidxform1.UnloadUSED([rega])regacommand1.Click=SYS(5)
* Ввод переменных=ALLTRIM(thisform.Text1.value)=ALLTRIM(thisform.text2.value)
IF SEEK
(Log1,"rega")VAL(Parol)<>rega.pass
WAIT WINDOW ('неверный пароль!') AT 15, 73 NOWAIT.Release()
IF rega.adm=0WINDOW ('Добро пожаловать!') AT 15, 73
NOWAITF1+"\Kursovaya\Programm\polmen.prg".Release()rega.adm=1
WAIT WINDOW ('Добро пожаловать, администратор!') AT 15, 73
NOWAITF1+"\Kursovaya\Programm\admmen.prg".Release()
ENDIF WINDOW ('Такой пользователь не обнаружен! Обратитесь к администратору.') AT 15,
73 NOWAIT
ENDIFcommand2.Click.Release()
ENDPROC
3.7 Класс vfpmci.vcx
Класс vfpmci.vcx (см. рис.7) предназначен для
воспроизведения звука и видео в приложении.
Рис. 7
CLASS vfpmci AS custom
PROTECTED status= 0lload= .F.=
"vfpmci"docmdtcMCICommandlcRetMsg= SPACE(80).Status =
mciSendString(tcMCICommand, @lcRetMsg, 80, 0)this.Status != 0= SPACE(160)
= mciGetErrorString(this.Status,
@lcRetMsg, 160)
= MESSAGEBOX(ALLTRIM(lcRetMsg), 64,
"MCI")""alltrim(lcRetMsg)open
LPARAMETERS tcFileName, tHWNDlcCMDVARTYPE(tcFileName)
= "C" .and. FILE(tcFileName)
* Проверить, загружен ли в настоящий момент
* аудио или видеофайл; если да, то закрыть его.
IF this.lLoad .DoCMD("CLOSE
mediafile")= IIF(VARTYPE(tHWND) = "N", tHWND, 0)
* Если значение HWND формы передано методу, то видео
будет выводиться
* в окне формы; иначе - в отдельном окне. При
воспроизведении аудиофайла
* MCI игнорирует параметр STYLE= 'OPEN "' +
tcFileName + '" ALIAS mediafile STYLE '
IF tHWND = 0= lcCMD +
"Overlapped"= lcCMD + "child parent " + LTRIM(STR(tHWND))=
lcCMD + " WAIT".DoCMD(lcCMD)this.Status = 0.lLoad = .t.playthis.lLoad.DoCMD("PLAY
mediafile")stopthis.lLoad .DoCMD("CLOSE mediafile").lLoad =
.f.pausethis.lLoad this.DoCMD("STATUS mediafile MODE") =
"playing".DoCMD("PAUSE mediafile")getsizelcRetMsg, lnSize=
0this.lLoad = this.DoCMD("STATUS mediafile LENGTH")this.Status = 0=
VAL(lcRetMsg)lnSizegetpositionlcRetMsg, lnPosition= 0this.lLoad =
this.DoCMD("STATUS mediafile POSITION")this.Status = 0=
VAL(lcRetMsg)lnPositiongetvideodimensiontnWidth, tnHeightlcRetMsgthis.lLoad =
this.DoCMD('WHERE mediafile destination')this.Status = 0=
VAL(GETWORDNUM(lcRetMsg, 3, " "))= VAL(GETWORDNUM(lcRetMsg, 4, "
"))setvolumetnVolumeVARTYPE(tnVolume) = "N"tnVolume < 0=
0tnVolume > 1000= 1000this.lLoad .DoCMD("SETAUDIO mediafile volume to
" + LTRIM(STR(tnVolume)))setposition
LPARAMETERS tnPositionlcCMD, lnSizeVARTYPE(tnPosition) =
"N"this.lLoad = "SEEK mediafile to "CASE tnPosition = -1
&& В начало
файла= lcCMD +
"start"tnPosition = -2 && В конец файла=
lcCMD + "end"tnPosition >= 0 && На заданную позициюtnPosition <= this.GetSize()= lcCMD +
LTRIM(STR(tnPosition))= lcCMD + LTRIM(STR(this.GetSize()))
ENDIF .DoCMD(lcCMD)
= INKEY(0.5)setvideorecttnLeft,
tnTop, tnWidth, tnHeightVARTYPE(tnLeft) + VARTYPE(tnTop) + VARTYPE(tnWidth) +
VARTYPE(tnHeight) = "NNNN"
LOCAL lcRetMsg
* Получить HWND для окна, в котором выводится видео
lcRetMsg = this.DoCMD('STATUS
mediafile window handle wait')
IF this.Status = 0
* Изменить положение и размеры окна, в котором
выводится видео
lnDestHwnd = VAL(lcRetMsg)SetWindowPos(lnDestHwnd, 0, tnLeft, tnTop,
tnWidth, tnHeight, 0) = 0
= MESSAGEBOX("Ошибка при изменении размеров окна для видео",
64, "MCI")
ENDIF readythis.lLoad this.DoCMD("STATUS mediafile
READY") = "true".t.
RETURN .f.Destroy.Stop()InitLong
mciSendString IN WinMM.DLL String, String @, Long, LongLong SetWindowPos IN
User32.dll ;, Long, Long, Long, Long, Long, LongLong mciGetErrorString IN
WinMM.DLL Long, String, Long
ENDPROC
4.
Создание проекта
Теперь, когда все формы сделаны, необходимо создать
проект, после чего создать файл с расширением .app, в котором и будет
запускаться все наше приложение.
Открываем Visual Fox Pro, после чего в верхнем
контекстном меню выбираем «File - New» (см. рис. 8). В появившемся окне
выбираем «Proekt» и нажимаем на кнопку «New File» (см. рис. 9),
после этого в открывшемся окне выбираем путь сохранения проекта и нажимаем на
кнопку «Сохранить» (см. рис. 10). Далее появляется окно, в которое Мы
должны будем добавить все нужные нам файлы, а это формы, классы, программы,
таблицы и т.д. После добавления можно создавать само приложение, а именно файл
с расширением .app. Для этого нам всего лишь надо нажать на кнопку «Build…»
(см. рис. 11), после чего появится окно, где нам надо выбрать пункт «Application
(app)», затем нажать на кнопку «ОК» (см. рис. 12). Далее появиться
окно сохранения приложения, необходимо указать путь и нажать на кнопку «Сохранить»
(Аналогично рисунку 10).
Если Вы все сделаете правильно, то приложение должно
превосходно работать.
Рис. 8
Рис. 9
Рис. 10
Рис. 11
Рис. 12
Заключение
Я закончил свой проект, хоть он мне и давался с
трудом. Основная сложность - разработка форм, классов, переменных, исправление
ошибок и д.т. Но благодаря своим усилиям и помощи учителя, мой проект выглядит
неплохо. В ходе всей моей проделанной работы я научился делать проекты, меню,
создавать формы и, в конце концов, делать аудио- и видео проигрыватели.
Список литературы
1. Книга «Visual Foxpro 9 - Клепинин, Агафонова»
. Сайт «www.znanija.com»