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

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

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2009, 21:12   #1
Волк
Форумчанин
 
Аватар для Волк
 
Регистрация: 04.02.2009
Сообщений: 156
По умолчанию Время воспроизведения песни

Народ скажите как получить время которое длятся песня??
Все мы отчасти гении!Но на сколько мы умны настолько же мы и глупы!
Волк вне форума Ответить с цитированием
Старый 28.05.2009, 22:26   #2
Vladya
Форумчанин
 
Аватар для Vladya
 
Регистрация: 04.11.2008
Сообщений: 360
По умолчанию

Ну не знаю кто как, а я получаю это время так:
Код:
function MusicToStr(n: longint): string;
var
s: string;
sec: longint;
min: longint;
begin
sec:=trunc(n/1000);
min:=trunc(sec/60);
sec:=sec-min*60;
s:=inttostr(min);
if sec<10 then s:=s+':0'+inttostr(sec)
else s:=s+':'+ inttostr(sec);
MusicToStr:=s;
end;
А что бы отобразить это время (скажем в лейбле), пиши вот так:
Код:
label1.Caption:=MusicToStr(mediaplayer1.Length);
Мой скромненький сайт
Vladya вне форума Ответить с цитированием
Старый 29.05.2009, 08:26   #3
Волк
Форумчанин
 
Аватар для Волк
 
Регистрация: 04.02.2009
Сообщений: 156
По умолчанию

Выскочила ошибка:
Код:
E2003 Undeclared identifier:'MusicToStr'
В этой строке:
Код:
edit2.Text:=MusicToStr(mediaplayer1.Length);
Все мы отчасти гении!Но на сколько мы умны настолько же мы и глупы!

Последний раз редактировалось Волк; 29.05.2009 в 08:29.
Волк вне форума Ответить с цитированием
Старый 29.05.2009, 08:50   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а вы функцию ту описали выше по коду?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.05.2009, 08:58   #5
Волк
Форумчанин
 
Аватар для Волк
 
Регистрация: 04.02.2009
Сообщений: 156
По умолчанию

Пепел Феникса Где ее описывать?Я знаю что ее где-то описать надо но где?
Все мы отчасти гении!Но на сколько мы умны настолько же мы и глупы!
Волк вне форума Ответить с цитированием
Старый 29.05.2009, 09:01   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
implementation

{$R *.dfm}

function MusicToStr(n: longint): string;
var
s: string;
sec: longint;
min: longint;
begin
sec:=trunc(n/1000);
min:=trunc(sec/60);
sec:=sec-min*60;
s:=inttostr(min);
if sec<10 then s:=s+':0'+inttostr(sec)
else s:=s+':'+ inttostr(sec);
MusicToStr:=s;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 edit2.Text:=MusicToStr(mediaplayer1.Length);
end;
вот я описал её перед вызовом
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.05.2009, 09:14   #7
Волк
Форумчанин
 
Аватар для Волк
 
Регистрация: 04.02.2009
Сообщений: 156
По умолчанию

Всем большое спасибо!!!
Все мы отчасти гении!Но на сколько мы умны настолько же мы и глупы!
Волк вне форума Ответить с цитированием
Старый 29.05.2009, 10:31   #8
Волк
Форумчанин
 
Аватар для Волк
 
Регистрация: 04.02.2009
Сообщений: 156
По умолчанию

Народ а как сделать чтобы показывалось сколько времени уже проиграла песня???
Я думаю тему можно закрывать. А для тех кто делает MediaPlayer и использует в нем TrackBar то можно проигранное время делать так:
Код:
edit1.Text:=MusicToStr(Trackbar1.Position);
Код можно прописывать прям в Timer1Timer
Все мы отчасти гении!Но на сколько мы умны настолько же мы и глупы!

Последний раз редактировалось Волк; 29.05.2009 в 11:53. Причина: Проблема решена!!
Волк вне форума Ответить с цитированием
Старый 02.06.2009, 22:35   #9
Vladya
Форумчанин
 
Аватар для Vladya
 
Регистрация: 04.11.2008
Сообщений: 360
По умолчанию

Попробуй вот так:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin

if mpcanplay in MediaPlayer1.Capabilities then
  Begin
   ProgressBar1.Position:=trunc(MediaPlayer1.Position/ratio);
   Label2.Caption:=MusicToStr(MediaPlayer1.Position);
     if mediaplayer1.Position = mediaplayer1.Length then NextTrack;
end;
End;
переменная ratio используется для возможности отображения текущей позиции песни, тип - double, получаем ее так:
Код:
ratio:=mediaplayer1.Length/progressbar1.Max;
Мой скромненький сайт

Последний раз редактировалось Vladya; 02.06.2009 в 22:40.
Vladya вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Узнать размер и длину песни Манжосов Денис :) Мультимедиа в Delphi 5 27.12.2011 03:23
Название песни в медиа плэйере yulia Мультимедиа в Delphi 5 30.09.2008 19:25
Ошибка после воспроизведения mp3-мелодий Митяй2 Мультимедиа в Delphi 14 21.10.2007 11:30
Как убрать голос из песни? Ильич Мультимедиа в Delphi 20 30.05.2007 07:04
проблемы воспроизведения видео _Solomon_ HTML и CSS 0 20.04.2007 08:50