Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 25.11.2012, 21:11
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Для начала я накидал простенький вариант, посмотри.
testsnd 3.67Kb
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
Dmitry_DM (25.11.2012)
  #17  
Старый 25.11.2012, 21:59
Dmitry_DM Dmitry_DM вне форума
Активный
 
Регистрация: 07.08.2012
Сообщения: 258
Версия Delphi: Delphi 7
Репутация: 11
По умолчанию

Цитата:
Сообщение от angvelem
Для начала я накидал простенький вариант, посмотри.
testsnd 3.67Kb
Спасибо! Это очень хороший код. Мне там все понятно, что и где происходит тоже. Как видно разницы в PaintBox и Image нету. Я конечно не специалист, но мне кажется стоит оставить вариант с PaintBox. Как по мне он лучше. И еще я сразу заметил, что при запуске программы открывается диалог открытия. Мне кажется стоит сделать открытие файла только через кнопку и "О". Да, и когда нажимаешь на паузу "ПРОБЕЛ" то постоянно открывается OpenDialog. А как на счет объединения программ и исправления 2 ошибок в плеере?
Ответить с цитированием
  #18  
Старый 25.11.2012, 22:08
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Меня для таких целей PaintBox также больше устраивает, меньше проблем с мерцанием.
Кнопка стоит в фокусе вот и срабатывает на пробел, можно подправить
Код:
    VK_SPACE :
    begin
      case Active of
        BASS_ACTIVE_PAUSED :
        begin
          BASS_ChannelPlay(ChanPlay, False);
          Caption := 'BASS spectrum analyser';
        end;

        BASS_ACTIVE_PLAYING :
        begin
          BASS_ChannelPause(ChanPlay);
          Caption := 'BASS spectrum analyser - PAUSED';
        end;
      end;
      Key := 0;
    end;
Пример днём накидал, так что объединение ещё не смотрел.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
Dmitry_DM (25.11.2012)
  #19  
Старый 25.11.2012, 22:12
Dmitry_DM Dmitry_DM вне форума
Активный
 
Регистрация: 07.08.2012
Сообщения: 258
Версия Delphi: Delphi 7
Репутация: 11
По умолчанию

Цитата:
Сообщение от angvelem
Меня для таких целей PaintBox также больше устраивает, меньше проблем с мерцанием.
Кнопка стоит в фокусе вот и срабатывает на пробел, можно подправить
Код:
    VK_SPACE :
    begin
      case Active of
        BASS_ACTIVE_PAUSED :
        begin
          BASS_ChannelPlay(ChanPlay, False);
          Caption := 'BASS spectrum analyser';
        end;

        BASS_ACTIVE_PLAYING :
        begin
          BASS_ChannelPause(ChanPlay);
          Caption := 'BASS spectrum analyser - PAUSED';
        end;
      end;
      Key := 0;
    end;
Пример днём накидал, так что объединение ещё не смотрел.
Мне этот пример очень даже понравился, как для накиданного.
Ответить с цитированием
  #20  
Старый 26.11.2012, 17:07
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Немного переделал
testsnd 15.6 Kb
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
Dmitry_DM (26.11.2012)
  #21  
Старый 26.11.2012, 23:39
Dmitry_DM Dmitry_DM вне форума
Активный
 
Регистрация: 07.08.2012
Сообщения: 258
Версия Delphi: Delphi 7
Репутация: 11
По умолчанию

Цитата:
Сообщение от angvelem
Немного переделал
testsnd 15.6 Kb
Ну спасибо огромное вам!!! Мне понравилось. Это именно то, что я представлял себе. Но те недочеты остались, к сожалению. Я про удаление объекта из плейлиста и деформация(искажение) звука при пауза\воспроизведение. Так же хотелось бы управление клавишами. Но это я и сам сделаю. А вот перемотку аудио вряд-ли. Если можно - выполните мои пожелания. Если нет - ну что же, и за это спасибо. Это уже для меня великое изменение в лучшую сторону + практика с bass.
Ответить с цитированием
  #22  
Старый 26.11.2012, 23:46
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Просто плэйлистом я не занимался.
Искажения звука при "пауза\воспроизведение" у меня не замечалось.
Остальное гляну.
И судя по выложенному вами коду, 1600 строк можно прилично ужать.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #23  
Старый 26.11.2012, 23:57
Dmitry_DM Dmitry_DM вне форума
Активный
 
Регистрация: 07.08.2012
Сообщения: 258
Версия Delphi: Delphi 7
Репутация: 11
По умолчанию

Цитата:
Сообщение от angvelem
Просто плэйлистом я не занимался.
Там просто кнопка del выполняет процедуру
Код:
procedure TForm_player.ListBox1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_DELETE then
  begin
    ListBox1.Items.Delete(SongNumber);
  end;
end;
Удаляет оно все-равно именно верхнюю строчку, а не выделенную.
Цитата:
Сообщение от angvelem
Искажения звука при "пауза\воспроизведение" у меня не замечалось.
Искажается только когда эквалайзер "Rock" и при многоразовом "пауза\воспроизведение"
Цитата:
Сообщение от angvelem
И судя по выложенному вами коду, 1600 строк можно прилично ужать.
Ну 1600 строк это всей программы. А это только плеер.
Ответить с цитированием
  #24  
Старый 27.11.2012, 00:07
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Dmitry_DM
Искажается только когда эквалайзер "Rock" и при многоразовом "пауза\воспроизведение"
Проверил, это не от стиля зависит, а от любого изменения ползунков эквалайзера. Нужно также глянуть.

Обновил вложение.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.

Последний раз редактировалось angvelem, 27.11.2012 в 21:59.
Ответить с цитированием
  #25  
Старый 27.11.2012, 22:05
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Смотреть выше.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
Dmitry_DM (28.11.2012)
  #26  
Старый 28.11.2012, 11:06
Dmitry_DM Dmitry_DM вне форума
Активный
 
Регистрация: 07.08.2012
Сообщения: 258
Версия Delphi: Delphi 7
Репутация: 11
По умолчанию

Цитата:
Сообщение от angvelem
Смотреть выше.
Это превосходный плеер!! Все же хотелось бы узнать что вы сделали, что бы решить проблему с искажением звука. P.S новый плейлист очень порадовал.
Ответить с цитированием
  #27  
Старый 28.11.2012, 22:02
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Искажения происходили из-за того, что постоянно делался вызов
Код:
    // настройка эквалайзера
    for I := 1 to 10 do
      fx[i] := BASS_ChannelSetFX(channel, BASS_FX_DX8_PARAMEQ, 1); // канал эквалайзера

    // настройка каналов эквалайзера
    for I := 1 to 10 do
    begin
      tb := TTrackBar(FindComponent('tbEqualizer' + IntToStr(I)));
      p.fGain      := 15 - tb.Position;                           // усиление
      p.fBandwidth := 3;                                          // ширина полосы пропускания
      p.fCenter    := Freq[tb.Tag];                               // частота регулирования
      BASS_FXSetParameters(fx[tb.Tag], @p);                       // применение заданных настроек
    end;
из таймера. Немного передвинул его.
Нужно ещё доделать корректную загрузку новых файлов, чтобы не было дубликатов. И не плохо бы подключить чтение внутренней инфы файлов.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #28  
Старый 28.11.2012, 23:26
Dmitry_DM Dmitry_DM вне форума
Активный
 
Регистрация: 07.08.2012
Сообщения: 258
Версия Delphi: Delphi 7
Репутация: 11
По умолчанию

Цитата:
Сообщение от angvelem
Нужно ещё доделать корректную загрузку новых файлов, чтобы не было дубликатов. И не плохо бы подключить чтение внутренней инфы файлов.
Было бы вообще отлично. К стати: я пробовал весь плеер переместить в свою общую программу. Точно знаю, что все правильно переместил, но при компиляции возникает access violetion. А дальше все работает кроме эквалайзера. И в CPU Viev немного сказано про track bar position. Я не знаю с чем это связано, но скорее всего просто подключу эту форму и сделаю ее вызов кнопкой в моей программе. Нет ли какого-то подвоха в этих 10 track bar'ах?
Ответить с цитированием
  #29  
Старый 28.11.2012, 23:43
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Dmitry_DM
...Точно знаю, что все правильно переместил...
Всё-таки, где то накосячил.
На всё время не хватает (приспичило перевести DOS-графику на Дельфи).
Ну какой там может быть подвох, обычные TrackBar-ы.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.

Последний раз редактировалось angvelem, 28.11.2012 в 23:47.
Ответить с цитированием
  #30  
Старый 14.12.2012, 03:22
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

После долгого перерыва вернулся к программе. Если ещё актуально, выложу исходный код.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
Dmitry_DM (14.12.2012)
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:01.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter