Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001

Тут можно читать онлайн Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001 - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Советы по Delphi. Версия 1.4.3 от 1.1.2001
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001 краткое содержание

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - описание и краткое содержание, автор Валентин Озеров, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

…начиная с 1001. Смотрите другие файлы…

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - читать онлайн бесплатно полную версию (весь текст целиком)

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - читать книгу онлайн бесплатно, автор Валентин Озеров
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Пример:

bin\brcc32 snddata.rc

Это создаст файл 'snddata.res', который Delphi слинкует с EXE-файлом вашего приложения.

Далее приведен необходимый вам код:

unitPlaySnd1;

interface

usesWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

typeTForm1 = class(TForm)

PlaySndFromFile: TButton;

PlaySndFromMemory: TButton;

PlaySndbyLoadRes: TButton;

PlaySndFromRes: TButton;

procedurePlaySndFromFileClick(Sender: TObject);

procedurePlaySndFromMemoryClick(Sender: TObject);

procedurePlaySndFromResClick(Sender: TObject);

procedurePlaySndbyLoadResClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

varForm1: TForm1;

implementation

{$R *.DFM}

{$R snddata.res}

usesMMSystem;

procedureTForm1.PlaySndFromFileClick(Sender: TObject);

begin

sndPlaySound('hello.wav', SND_FILENAME orSND_SYNC);

end;

procedureTForm1.PlaySndFromMemoryClick(Sender: TObject);

var

f: file;

p: pointer;

fs: integer;

begin

AssignFile(f, 'hello.wav');

Reset(f,1);

fs := FileSize(f);

GetMem(p, fs);

BlockRead(f, p^, fs);

CloseFile(f);

sndPlaySound(p, SND_MEMORY orSND_SYNC);

FreeMem(p, fs);

end;

procedureTForm1.PlaySndFromResClick(Sender: TObject);

begin

PlaySound('HELLO', hInstance, SND_RESOURCE orSND_SYNC);

end;

procedureTForm1.PlaySndbyLoadResClick(Sender: TObject);

var

h: THandle;

p: pointer;

begin

h := FindResource(hInstance, 'HELLO', 'WAVE');

h := LoadResource(hInstance, h);

p := LockResource(h);

sndPlaySound(p, SND_MEMORY orsnd_sync);

UnLockResource(h);

FreeResource(h);

end;

end.

Создание нового WAV-файла

Тема: Создание нового файла с расширением .wav.

Данный документ был создан по многочисленным просьбам пользователей и описывает дополнительную функциональность компонента Delphi TMediaPlayer. Новая функциональность компонента заключается в возможности создания при записи нового файла формата .wav. Процедура "SaveMedia" создает тип record, передаваемый команде MCISend. Существует исключение, которое вызывает закрытие медиа при любой ошибке, возникающей при открытии определенного файла. Приложение состоит из двух кнопок. Button1 вызывает по-порядку процедуры OpenMedia и RecordMedia. Процедура CloseMedia вызывается при генерации приложением исключительной ситуации. Button2 вызывает процедуры StopMedia,SaveMedia и CloseMedia.

unitutestrec;

interface

usesWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, MPlayer, MMSystem, StdCtrls;

typeTForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

procedureButton1Click(Sender: TObject);

procedureButton2Click(Sender: TObject);

procedureFormCreate(Sender: TObject);

procedureAppException(Sender: TObject; E: Exception);

private

FDeviceID: Word;

{ Private declarations }

public

procedureOpenMedia;

procedureRecordMedia;

procedureStopMedia;

procedureSaveMedia;

procedureCloseMedia;

end;

varForm1: TForm1;

implementation

{$R *.DFM}

varMyError,Flags: Longint;

procedureTForm1.OpenMedia;

var

MyOpenParms: TMCI_Open_Parms;

MyPChar: PChar;

TextLen: Longint;

begin

Flags:=mci_Wait ormci_Open_Element ormci_Open_Type;

withMyOpenParms do begin

dwCallback:=Handle; // TForm1.Handle

lpstrDeviceType:=PChar('WaveAudio');

lpstrElementName:=PChar('');

end;

MyError:=mciSendCommand(0, mci_Open, Flags, Longint(@MyOpenParms));

ifMyError = 0 thenFDeviceID:=MyOpenParms.wDeviceID;

end;

procedureTForm1.RecordMedia;

var

MyRecordParms: TMCI_Record_Parms;

TextLen: Longint;

begin

Flags:=mci_Notify;

withMyRecordParms do begin

dwCallback:=Handle; // TForm1.Handle

dwFrom:=0;

dwTo:=10000;

end;

MyError:=mciSendCommand(FDeviceID, mci_Record, Flags,Longint(@MyRecordParms));

end;

procedureTForm1.StopMedia;

varMyGenParms: TMCI_Generic_Parms;

begin

ifFDeviceID <> 0 then begin

Flags:=mci_Wait;

MyGenParms.dwCallback:=Handle; // TForm1.Handle

MyError:=mciSendCommand(FDeviceID, mci_Stop, Flags,Longint(@MyGenParms));

end;

end;

procedureTForm1.SaveMedia;

type // не реализовано в Delphi

PMCI_Save_Parms = ^TMCI_Save_Parms;

TMCI_Save_Parms = record

dwCallback: DWord;

lpstrFileName: PAnsiChar; // имя файла, который нужно сохранить

end;

varMySaveParms: TMCI_Save_Parms;

begin

ifFDeviceID <> 0 then begin

// сохраняем файл...

Flags:=mci_Save_File ormci_Wait;

withMySaveParms do begin

dwCallback:=Handle;

lpstrFileName:=PChar('c:\message.wav');

end;

MyError:=mciSendCommand(FDeviceID, mci_Save, Flags,Longint(@MySaveParms));

end;

end;

procedureTForm1.CloseMedia;

varMyGenParms: TMCI_Generic_Parms;

begin

ifFDeviceID <> 0 then begin

Flags:=0;

MyGenParms.dwCallback:=Handle; // TForm1.Handle

MyError:=mciSendCommand(FDeviceID, mci_Close, Flags,Longint(@MyGenParms));

ifMyError = 0 thenFDeviceID:=0;

end;

end;

procedureTForm1.Button1Click(Sender: TObject);

begin

OpenMedia;

RecordMedia;

end;

procedureTForm1.Button2Click(Sender: TObject);

begin

StopMedia;

SaveMedia;

CloseMedia;

end;

procedureTForm1.FormCreate(Sender: TObject);

begin

Application.OnException := AppException;

end;

procedureTForm1.AppException(Sender: TObject; E: Exception);

begin

CloseMedia;

end;

end.

Как реализовать регулятор громкости?

Nomadicсоветует:

Да всё пpосто. Даже, я бы сказал, тyпо. :-)

INT GetMasterVolumeControlID() {

// get dwLineID

MIXERLINE mxl;

mxl.cbStruct = sizeof(MIXERLINE);

mxl.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_SPEAKERS;

if (::mixerGetLineInfo((HMIXEROBJ)ghmx, &mxl, MIXER_OBJECTF_HMIXER | MIXER_GETLINEINFOF_COMPONENTTYPE) != MMSYSERR_NOERROR) return 34;

// get dwControlID

MIXERCONTROL mxc;

MIXERLINECONTROLS mxlc;

mxlc.cbStruct = sizeof(MIXERLINECONTROLS);

mxlc.dwLineID = mxl.dwLineID;

mxlc.dwControlType = MIXERCONTROL_CONTROLTYPE_VOLUME;

mxlc.cControls = 1;

mxlc.cbmxctrl = sizeof(MIXERCONTROL);

mxlc.pamxctrl = &mxc;

if (::mixerGetLineControls((HMIXEROBJ)ghmx, &mxlc, MIXER_OBJECTF_HMIXER | MIXER_GETLINECONTROLSF_ONEBYTYPE) != MMSYSERR_NOERROR) return 34;

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Валентин Озеров читать все книги автора по порядку

Валентин Озеров - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Советы по Delphi. Версия 1.4.3 от 1.1.2001 отзывы


Отзывы читателей о книге Советы по Delphi. Версия 1.4.3 от 1.1.2001, автор: Валентин Озеров. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x