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

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

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

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

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

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

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

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');
Криво, косо, но кажется должно работать (не проверял)
Dr.Badnezz вне форума Ответить с цитированием
Старый 10.06.2010, 14:49   #3
.Phoenix
Форумчанин
 
Регистрация: 02.04.2009
Сообщений: 235
По умолчанию

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

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


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

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

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


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