Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2008, 20:57   #1
Killbrum
Форумчанин
 
Регистрация: 05.12.2007
Сообщений: 206
По умолчанию MediaPlayer

Всем доброе время суток! Вот тут сидел с плеером... при запуске на других компютерах возникает MCI ошыбка. Ну я впихнул в каталог с файлом звуковой файлик да и дело с концом. Но, интересно можно зделать так чтоб етой ошыбки не возникало без звукового файла? Чтоб в комплекте шол только 1 ехе файл?
Killbrum вне форума Ответить с цитированием
Старый 10.06.2008, 11:18   #2
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Конечно возникает, то что ты в инспекторе объектов задаешь файл, на самом деле просто записывается путь к нему в свойство FileName. Естественно если файл не обнаруживается, возникает ошибка.

Чтобы ошибки не возникало, достаточно проверять предварительно наличие файла функцией FileExists.

Чтобы в комплекте шел один exe файл, музыку нужно засунуть в ресурсы этого exe.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 10.06.2008, 19:38   #3
Killbrum
Форумчанин
 
Регистрация: 05.12.2007
Сообщений: 206
По умолчанию

Ну да я понимаю что я пишу путь . Если я зделаю чтоб МП запускалса без пути к файлу возникнет ошыбка EMCIDivaceError. Потому и хочу впихнуть файлик. Ты немог бы подсказать как конкретно впихнуть етот файлик?
Ах да и ещо одно. Как называетса в програме етот еррор? Ну я имею ввиду MCI чтоб я мог зделать для него исключительную ситуацыю
Killbrum вне форума Ответить с цитированием
Старый 10.06.2008, 20:27   #4
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

чтобы воспроизведение началось успешно, необходимо:
1. Задать путь к файлу - Mediaplayer1.FileName:='music.mp3';
2. Открыть устройство - Mediaplayer1.Open;
3. Включить проигрывание - Mediaplayer1.Play;

Вовсе не обязательно "подшивать" музыкальный файл в екзешник. Вполне можно положить его рядом с ним, так даже лучше. Нормальный адекватный юзер никогда не удалит этот файл, так как многие программы свои звуки хранят именно так, и все это знают. На случай удаления, перед загрузкой музыки просто проверять путь к файлу, если файл не существует выдать сообщение "Звуковой файл не найден. Вероятно вы его удалили..." ну и дальше в таком роде. Ну и естественно не пытаться его проигрывать. Лучше предотвратить исключение чем его обрабатывать.

Конечно можно хранить в ресурсах, это отдельная тема, причем многократно рассмотренная, и на этом форуме в том числе.
При загрузке из ресурса, этого еррора не может быть по определению.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 11.06.2008, 02:05   #5
Killbrum
Форумчанин
 
Регистрация: 05.12.2007
Сообщений: 206
По умолчанию

Большое спасибо за разяснение
Нащет как ето делать я все так и делал . Просто иногда напрягает таскать етот мп3 файлик за собой. Нащет исключения спс, буду знать
Killbrum вне форума Ответить с цитированием
Старый 11.06.2008, 08:03   #6
Manitu
Пользователь
 
Аватар для Manitu
 
Регистрация: 05.03.2008
Сообщений: 33
По умолчанию

Прошу извинить за вмешательство, но...
>>Чтобы в комплекте шел один exe файл, музыку нужно засунуть в ресурсы этого exe.
Как сохранить приложение, чтобы все файлы, которые ему нужны, вложенные папки и т.д. содержались в этом экзешнике??
Manitu вне форума Ответить с цитированием
Старый 12.06.2008, 14:58   #7
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Ну с вложенными папками это вы уже загнули, но отдельные файлы включаются в ресурсы без проблем.
Изображения и текст - даже не надо лишних движений, достаточно добавить к проекту TImage и загрузить в него картинку, текст - TMemo.
С остальными файлами, как в принципе и с этими тоже, нужно поступать так.
1. Написать rc файл.
2. Скомпилировать из него с помощью brcc32 res-файл.
3. Добавить в код строку {$R имя файла.res} и написать процедуры загрузки из ресурсов.
Подробно как это делать читатайте на этом форуме, в книгах, в интернете. Тема одна из популярных - Загрузка из ресурсов (работа с ресурсами, компиляция ресурсов).
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 13.06.2008, 01:23   #8
Killbrum
Форумчанин
 
Регистрация: 05.12.2007
Сообщений: 206
По умолчанию

Помоги плиз разобратса с кодом делфи. Взял его с здешних плееров.

function FormatTime(Time: Integer): string;
const
sec = 1000;
min = 60 * sec;
hour = 60 * min;
var
h, m, s : Integer;
begin
h := Time div hour;
m := (Time div min) mod 60;
s := (Time div sec) mod 60;
if Time < hour then
Result := Format('%d:%.2d', [m, s])
else
Result := Format('%d:%.2d:%.2d', [h, m, s]);
end;

Если дослвоно то насколько я понимаю оно:
Час:= Время делим на 60 (а откуда мы с етой функцыи взяли время? Нигде оно тут непрописано.... да и в варе юнита тоже.... ето что зарезервированая?)
Также и с минутами вроде. Час делим на минуты а потом с етого берьом мод... мод насколько я помню ето...тьфу уже забыл
Дальше если время менше часа значит выводим ето в минутах и секундах. А если менше значит в часах, мин и с. ('%d:%.2d:%.2d', [h, m, s]) прокоментируйте плиз как оно ето выводит? что такое %d:%.2d:%.2d ето зарезервированая функция?
И интересно как после етого я могу ссылатса мол
label1.Caption:=FormatTime(Position )+'/'+ FormatTime(Lenght) ???
Ведь в етой функцыи неговоритса про Позицыю и продолжытельность. Чтото я тут ничего непонимаю...
Killbrum вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MediaPlayer и mp3 ale_krolik Мультимедиа в Delphi 5 29.05.2009 22:39
Mediaplayer anton14 Мультимедиа в Delphi 12 20.10.2008 11:07
Mediaplayer RealSHELS Общие вопросы Delphi 3 12.05.2008 16:44
Mediaplayer.... ZhekON Компоненты Delphi 13 19.02.2007 19:32
MediaPlayer PAVEL315 Общие вопросы Delphi 1 10.02.2007 16:05