Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.04.2008, 16:02
DeSoLaToR DeSoLaToR вне форума
Прохожий
 
Регистрация: 30.12.2007
Сообщения: 22
Репутация: 10
Вопрос Audio

Как можно файлы (mp3, avi и т.д.) запихать в экзэшник?
чтоб не тоскать с ним файлы, а чтоб всё было внутри..
а также как их проигрывать...
Ответить с цитированием
  #2  
Старый 24.04.2008, 16:17
Gad99 Gad99 вне форума
Новичок
 
Регистрация: 21.02.2008
Адрес: мурманск
Сообщения: 72
Репутация: 10
По умолчанию

По поводу екзешника незнаю, а вот в файл ресурсов помоему все это запихнуть вполне реально. После загружать по надобности.
Вот тут есть кое что
http://www.delphisources.ru/pages/faq/file_system.html
Ответить с цитированием
  #3  
Старый 25.04.2008, 10:27
DeSoLaToR DeSoLaToR вне форума
Прохожий
 
Регистрация: 30.12.2007
Сообщения: 22
Репутация: 10
По умолчанию

Блин йа слишком тупой чтоб понять ат туда чёнить))
Там по ВаВ описано, я с мп3 несмагу организовать...
В акзэшник роде пихается но по примеру оч трудно понять как...
У кого мегамозг? разжуйте мне пожалуста
Ответить с цитированием
  #4  
Старый 25.04.2008, 12:22
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

http://www.delphisources.ru/pages/fa...av_in_exe.html
Здесь сказано как привязать файл к exe'шнику (пример там про WAV-файл, но, по большому счету, это не важно).
А засада то не в этом, а в том, что в Delphi файлы mp3 может проигрывать компонент MediaPlayer только в том случае, если в системе установлен декодер.
Если есть 100% уверенность, что на том компе, куда потащишь свою прогу, этот декодер установлен, то будет тебя ляпота, иначе конфуз.

Без какого-либо напряга привязываются к exe'шнику и проигрываются файлы WAV, но, видно, это не твой случай.

Вообще то, не шибко хорошая идея засовывать звуковые файлы в exe'шник. Нормальные пацаны этого не делают. Слишком много хлопот при необходимости что-либо изменить.

Последний раз редактировалось san-46, 25.04.2008 в 12:33.
Ответить с цитированием
  #5  
Старый 25.04.2008, 13:50
DeSoLaToR DeSoLaToR вне форума
Прохожий
 
Регистрация: 30.12.2007
Сообщения: 22
Репутация: 10
По умолчанию

b32rcc.exe запускаеца чёта в окошке командной строки милькает и закрываеца...
Как запихнуть файл в *.rc
а затем в рес...
у меня есть прога Ресурс хакер с помощью неё можносделать ресурс?
Ответить с цитированием
  #6  
Старый 25.04.2008, 23:26
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

В файл .rc ничего запихивать не надо, кроме строки текста (или строк, если звуковых файлов больше одного: один файл - одна строка).
Создаешь текстовый файл (пустой), пишешь туда строку, для примера,
SOUNDA RCDATA LOADONCALL shum.mp3
здесь:
SOUNDA - твое, какое хочешь, наименование ресурса (заглавные латинские буквы - в дальнейшем не будет проблем);
RCDATA и LOADONCALL - служебные слова для компилятора (RCDATA - тип сохраняемого ресурса: "определяемый пользователем");
shum.mp3 - имя файла, который необходимо подцепить и, который компилятор должен, естественно, найти, т.е. он должен находится там же где и файл .rc.
Сохраняешь этот текстовый файл с расширением .rc (имя файла по своему усмотрению, например, snd.rc).
Дальше компилируешь этот файл с помощью компилятора ресурсов через командную строку:
brcc32.exe snd.rc
Компилятор консольный, поэтому никаких окон не появиться. Если нужен отчет о его работе (ошибки, допустим, посмотреть), то надо в командной строке добавить создание файла отчета:
brcc32.exe snd.rc > log.txt
Компилятор создаст файл log.txt, в котором и можно будет посмотреть что там при трансляции приключилось.

Если будет все в порядке, то сформируется файл ресурса с тем же именем, что и rc, но с расширением .res (в этом примере snd.res), куда компилятором и будет "запихнут" звуковой (видео) файл, вернее, его содержимое.

Как с этим ресурсом работать - это уже другая песня. А слова у песни такие.
В коде главной формы дописываешь строку:
Код:
{$R *.dfm}
{$R snd.res} //добавленная строка
На форму кидаешь TMediaPlayer. Если пользователю не надо видеть этот компонент, то устанавливаешь его свойство Visible в False.
Так как этот проигрыватель умеет работать только с файлами (для mp3), то следующая задача вытащить содержимое ресурса в файл (временный, который потом можно будет удалить). Сохранить ресурс в файл можно так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  ResS : TResourceStream;
begin
  ResS := TResourceStream.Create(hInstance, 'SOUNDA', RT_RCDATA);
  try
    ResS.SaveToFile('000000.mp3'); 
    //имя файла как пример, а расширение как у оригинального файла
  finally
    ResS.Free;
  end;
end;
"SOUNDA" в параметрах - это то самое имя ресурса, которое ты определил в файле .rc. Другие параметры при создании ресурного потока оставляешь как они показаны в примере.

Дальше, чтобы проиграть файл нужно подцепить его к проигрывателю, открыть его и дать команду на воспроизведение.
Код:
  MediaPlayer1.FileName := '000000.mp3';
  MediaPlayer1.Open;
  MediaPlayer1.Play;
Для видео файлов все делается так же, за исключением того, что в проигрывателе надо будет указать DeviceType для AVI и окно (свойство Display), как правило, какая-нибудь TPanel на форме, в котором видео будет проигрываться.

Последний раз редактировалось san-46, 26.04.2008 в 10:02.
Ответить с цитированием
  #7  
Старый 26.04.2008, 09:28
DeSoLaToR DeSoLaToR вне форума
Прохожий
 
Регистрация: 30.12.2007
Сообщения: 22
Репутация: 10
Хорошо

Спасибо огромное!!!!!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:37.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025