Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 10.06.2010, 12:32   #1
.Phoenix
Форумчанин
 
Регистрация: 02.04.2009
Сообщений: 235
Репутация: 24

icq: 482-612-193
skype: skype_08rus
По умолчанию BASSPlayer.

Всем привет. Есть один "скромный" вопрос. Как узнать продолжительность музыкального файла не используя Bassplayer.Open. Так как при добавлении файла в список воспроизведения, чтобы узнать продолжительность файла для начала его надо открыть. Но при этом текущая музыка останавливается. т.е. играет музыка, я добавляю новый муз файл(при открытии работает (Bassplayer.Open) и тут же игра прекращается. А если при открытии файла Bassplayer.Open не использовать, то игра не прекращается, тем самым длительность музыки остается неизвестной. Как быть?
__________________
Всё гениальное - просто!
.Phoenix вне форума   Ответить с цитированием
Старый 10.06.2010, 12:59   #2
Dr.Badnezz
Ученик
Форумчанин
 
Регистрация: 19.09.2008
Сообщений: 119
Репутация: 33

icq: 450879
По умолчанию

c BASSPlayer не работал. Может стоит попытаться работать напряму с BASS.dll
Код:

function GetPeriodFromSec(const Sec: Integer): String;
      var H, M, S: Integer;
      begin
        H:=Sec div 3600;
        S:=Sec mod 3600;
        M:=S div 60;
        S:=(S mod 60);
          if H <> 0 then
             Result:=Format('%2.2d:%2.2d:%2.2d', [H,M,S])
          else
             Result:=Format('%2.2d:%2.2d', [M,S]);
   end;
Function FullTime(Fs: String): String;
   Var S: Integer;
   var G: Float;
   var Titles: String;
   var H: HStream;
    begin
      h := BASS_STREAMCREATEFILE(false,Pchar(fs),0,0,0);
      S:= Bass_ChannelGetLength(h,Bass_POS_BYTE);
      G:= BASS_ChannelBytes2Seconds(h,s);

      Titles:= FormatFloat('000',G);
      Titles:= GetPeriodFromSec(StrToInt(Titles));
      bass.BASS_StreamFree(h);
      Result := Titles;
    end;

//Использовать
var time: string;
begin
 time := FullTime('C:\my_song.mp3');

Криво, косо, но кажется должно работать (не проверял)
__________________
itparser.ru
Dr.Badnezz вне форума   Ответить с цитированием
Старый 10.06.2010, 14:49   #3
.Phoenix
Форумчанин
 
Регистрация: 02.04.2009
Сообщений: 235
Репутация: 24

icq: 482-612-193
skype: skype_08rus
По умолчанию

Чтобы работать на прямую хорошо бы знать тогда все процедуры и функции, а я к сожалению не знаю.
__________________
Всё гениальное - просто!
.Phoenix вне форума   Ответить с цитированием
Старый 10.06.2010, 23:28   #4
ZuBy
Профессионал
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Адрес: Казахстан, Астана
Сообщений: 1,232
Репутация: 379
По умолчанию

Цитата:
Сообщение от .Phoenix Посмотреть сообщение
Чтобы работать на прямую хорошо бы знать тогда все процедуры и функции, а я к сожалению не знаю.
читай справку и смотри bass.pas
__________________
бложик FMX Developer'a
ZuBy вне форума   Ответить с цитированием
Ответ

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
bassplayer и видео. blackstersl Общие вопросы Delphi 5 12.05.2010 14:50
BassPlayer плейлист Alex2009 Мультимедиа в Delphi 13 12.03.2010 20:07
Вопрос по listbox и bassplayer. blackstersl Общие вопросы Delphi 5 11.05.2009 11:51
BassPlayer Makarov Свободное общение 4 19.01.2008 10:49
Снова BassPlayer Viteef Компоненты Delphi 1 17.05.2007 08:10


10:00.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru