Просмотр видеороликов
В табл. 4.10 приведены значения свойств компонентов SpeedButton1 и SpeedButton2 разрабатываемой программы. Текст программы Video Player приведен в листинге 4.4.
Таблица 4.10. Значение свойств компонентов SpeedButton1 и SpeedButton2.
| Свойство | SpeedButton1 | SpeedButton2 |
|---|---|---|
| Gliph | ejbtn.bmp | plbtn.bmp |
| NumGliphs | 4 | 4 |
| Flat | true | true |
| AllowUp | false | true |
| Grouplndex | 0 | 1 |
| Enabled | true | false |
| Width | 25 | 25 |
| Height | 25 | 25 |
| ShowHint | true | true |
| Hint | Eject | Play |
Листинг 4.4. Видеоплеер.
//обработка события Create
void __fastcall TForml::FormCreate(TObject *Sender)
{
MediaPlayerl › Display = Forml;
// отображение ролика на поверхности
// формы
}
// возвращает размер кадра AVI-файла
void __fastcall GetFrameSize(AnsiString f, int *w, int *h)
{
// в заголовке AVI-файла есть информация о размере кадра
struct {
char RIFF[4]; // строка RIFF
long int nu_l[5]; //не используется
char AVIH[4]; // строка AVIH
long int nu_2[9]; //не используется
long int w; // ширина кадра
long int h; // высота кадра
} header;
TFileStream *fs; // поток (для чтения заголовка файла)
/* операторы объявления потока и его создания
можно объединить:
TFileStream *fs = new TFileStream(f,fmOpenRead); */
fs = new TFileStream(f,fmOpenRead};
// открыть поток для чтения
fs › Read(&header, sizeof(header));
// прочитать заголовок файла
*w = header.w; *h = header.h;
delete fs; }
// щелчок на кнопке Eject (выбор видеоклипа)
