Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Flash из TMemoryStream [D7, XP]


Uzver32.dll ©   (2006-08-24 17:58:00) 

Уважаемые Мастера
Помогите решить мою проблему:
Требуется воспроизвести Flash ролик непосредственно из TMemoryStream,
не используя при этом верменные файлы.

Ситуация такая:
В директории моей программы хранятся зашифрованые SWF-файлы, при запуске
программа загружает их в TMemoryStream и расшифровывает. Теперь только нужно
загрузить их в TShockwaveFlashEx(бесплатный компонент для отображения Flash)
Да только нет у него ничего похожего на LoadFromStream, только свойство Movie,
в котором указывается путь к файлу.

После продолжительных поисков в сети я узнал, что есть платный компонент "Flash in BOX",
который имеет вышеуказанный метод, причем, как уверяют разработчики он не использует
временные файлы. Как это им удалось - ума не приложу - неужто они написали свой флеш плеер
и не используют flash.ocx? Врятли. Кроме того у TShockwaveFlashEx есть также свойство
embded movie, с помощью которого можно включить ролик в исполняемый файл - в моём случае
не подходит, но это говорит о том, что стандартный флеш плеер умеет читать ролики из памяти.

Вот такие дела.
Спасибо.
С уважением Евгений.


PSPF2003   (2006-08-24 18:52:00) [1]

Вот функцию нашел как и потока грузить
function TForm1.LoadFromStream(const AStream: TStream): HRESULT;
begin
 AStream.seek(0, 0);
 Result := (WebBrowser1.Document as
         IPersistStreamInit).Load(TStreamAdapter.Create(AStream));
end;

а вот из res

procedure TForm1.LoadHTMLResource;
var
 Flags, TargetFrameName, PostData, Headers: OleVariant;
begin
 WebBrowser1.Navigate('res://' + Application.ExeName + '/myhtml',
                          Flags, TargetFrameName, PostData, Headers)
end;

Создайте файл ресурса (*.rc) со следующими строками и откомпилируйте его при помощи brcc32.exe:
MYHTML 23 ".\html\myhtml.htm"

MOREHTML 23 ".\html\morehtml.htm"
Отредактируйте файл проекта, чтобы он выглядел примерно так:
{$R *.RES}
{$R HTML.RES} //где html.rc будет скомпилирован в html.res


PSPF2003   (2006-08-24 18:48:00) [2]

А TWebBrowser разве флеш не показывает?


Наверх

Титульная страница Поиск, карта сайта Написать письмо