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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2014, 03:29   #11
Abversoft
Пользователь
 
Регистрация: 26.04.2009
Сообщений: 24
По умолчанию

Не много по экспериментировал и вот что получилось.
Я в правильном направлении двигаюсь?
Вложения
Тип файла: zip mp3_9a.zip (229.9 Кб, 17 просмотров)
Abversoft вне форума Ответить с цитированием
Старый 01.02.2014, 11:34   #12
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

На сколько я понял, ты так хотел сделать?
Вложения
Тип файла: zip mp3_9a.zip (27.6 Кб, 26 просмотров)
ZuBy вне форума Ответить с цитированием
Старый 01.02.2014, 11:56   #13
Abversoft
Пользователь
 
Регистрация: 26.04.2009
Сообщений: 24
По умолчанию

Цитата:
Сообщение от ZuBy Посмотреть сообщение
На сколько я понял, ты так хотел сделать?
В принципе, да.
Есть несколько моментов.
1. Увеличение скорости прокрутки.
2. Отображение должно вписываться в PBox (т.е в установленный размер) а не растягиваться
Сам тут пытался через CopyRect, не получается.
Abversoft вне форума Ответить с цитированием
Старый 01.02.2014, 12:11   #14
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Цитата:
Сообщение от Abversoft Посмотреть сообщение
В принципе, да.
Есть несколько моментов.
1. Увеличение скорости прокрутки.
2. Отображение должно вписываться в PBox (т.е в установленный размер) а не растягиваться
Сам тут пытался через CopyRect, не получается.
1 - быстрей чем идет музыка хочешь сделать?
у тебя дорожка быстрей кончится, а музыка будет играть
2 - а кто мешает? оно так и сделано
Код:
  bit.Width := PaintBox2.Width; //Length(Data) ;

Последний раз редактировалось ZuBy; 01.02.2014 в 12:33.
ZuBy вне форума Ответить с цитированием
Старый 01.02.2014, 12:33   #15
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Поправил код, вот так правильней
Код:
  for I := 0 to Length(Data) - 1 do
  begin
    L := LoWord(Data[i]);
    R := HiWord(Data[i]);
    bit.Canvas.MoveTo(I - Xpos, ch - trunc((L / 32768) * ch));
    bit.Canvas.LineTo(I - Xpos, ch + trunc((R / 32768) * ch));
  end;

  PaintBox2.Repaint;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if BASS_ChannelIsActive(hs) = BASS_ACTIVE_PLAYING then
  begin
    XPOS := Trunc(BASS_ChannelGetPosition(hs, BASS_POS_BYTE) / Mp3Len * PaintBox2.Width);
    Draw;
  end;
end;
ZuBy вне форума Ответить с цитированием
Старый 01.02.2014, 12:38   #16
Abversoft
Пользователь
 
Регистрация: 26.04.2009
Сообщений: 24
По умолчанию

Цитата:
Сообщение от ZuBy Посмотреть сообщение
1 - быстрей чем идет музыка хочешь сделать?
у тебя дорожка быстрей кончится, а музыка будет играть
2 - а кто мешает? оно так и сделано
Код:
  bit.Width := PaintBox2.Width; //Length(Data) ;
для aimp есть скин http://aimp.ru/files/skins/d/Denon_Classic_Style.zip (версия 2.2.3).
Это как пример что я хочу сделать.
Сделал на ScrollBox, но получилось не совсем как хотелось бы.
Как перенести что получилось так как в aimp.
Вложения
Тип файла: zip mp3_9b.zip (231.1 Кб, 13 просмотров)

Последний раз редактировалось Abversoft; 01.02.2014 в 12:52.
Abversoft вне форума Ответить с цитированием
Старый 01.02.2014, 12:48   #17
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Допустим, что я должен увидеть?
прогресс-бар?
ZuBy вне форума Ответить с цитированием
Старый 01.02.2014, 12:56   #18
Abversoft
Пользователь
 
Регистрация: 26.04.2009
Сообщений: 24
По умолчанию

Цитата:
Сообщение от ZuBy Посмотреть сообщение
Допустим, что я должен увидеть?
прогресс-бар?
При чем тут програссбар. Мы сейчас обсуждаем об визуализации.
Смотри скриншот
Изображения
Тип файла: jpg screnshot1.jpg (48.5 Кб, 114 просмотров)
Вложения
Тип файла: zip mp3_9b.zip (231.1 Кб, 12 просмотров)
Abversoft вне форума Ответить с цитированием
Старый 01.02.2014, 13:03   #19
Abversoft
Пользователь
 
Регистрация: 26.04.2009
Сообщений: 24
По умолчанию

Цитата:
Сообщение от ZuBy Посмотреть сообщение
Поправил код, вот так правильней
Код:
  for I := 0 to Length(Data) - 1 do
  begin
    L := LoWord(Data[i]);
    R := HiWord(Data[i]);
    bit.Canvas.MoveTo(I - Xpos, ch - trunc((L / 32768) * ch));
    bit.Canvas.LineTo(I - Xpos, ch + trunc((R / 32768) * ch));
  end;

  PaintBox2.Repaint;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if BASS_ChannelIsActive(hs) = BASS_ACTIVE_PLAYING then
  begin
    XPOS := Trunc(BASS_ChannelGetPosition(hs, BASS_POS_BYTE) / Mp3Len * PaintBox2.Width);
    Draw;
  end;
end;
Я так и сделал. Теперь задача стоит как данный рисунок в писать в установленные размеры и чтоб еще и двигались.
Вложения
Тип файла: zip mp3_9b.zip (231.1 Кб, 14 просмотров)
Abversoft вне форума Ответить с цитированием
Старый 01.02.2014, 13:15   #20
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

Цитата:
Если я Вас правильно понял надо с начала вытащить весь сигнал т.е сделать так как в примере (смотри архив). После начинать сдвигать по времени.
совсем необязательно, но принцип тот же.

Вы получаете мгновенные значения сигнала на текущий момент, заносите в массив на n-точек и сразу отображаете эти n-точек, как только весь массив заполняется - начинаете сдвиг записывая новое текущее значение на самое последнее в массиве, таким образом окно у вас будет сдвигаться постоянно с получением каждого нового значения. Пример http://www.youtube.com/watch?v=u7XQPmh9bYE
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Музыкальный спектр Fiery Fox C# (си шарп) 5 14.06.2011 12:54
Спектр сигнала Zer0 Помощь студентам 6 01.05.2011 22:27
БПФ спектр Voxa7 Помощь студентам 3 18.04.2011 14:16
спектр различимости Gunslinger Помощь студентам 1 30.05.2010 10:54
Спектр в MediaPlayer-е ekzobyte Мультимедиа в Delphi 4 18.03.2009 20:11