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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2012, 21:41   #21
Menmo
Пользователь
 
Регистрация: 17.10.2012
Сообщений: 40
По умолчанию

Короче.. Вот мой код
procedure TForm3.ScrollBar1Scroll(Sender: TObject;
ScrollCode: TScrollCode; var ScrollPos: Integer);
begin

//устанавливаем позицию воспроизведения трека в зависимости от положения scrollbar
bass_ChannelSetPosition(Channel, scrollbar1.position, 0);
end;

procedure TForm3.Timer3Timer(Sender: TObject);
var FFTFata : TFFTData;
TrackLen, TrackPos: Double;
ValPos: Double;
ValLen: Double;
begin
//проверяем режим воспроизведения, если не Play то выходим
if mode<>play then Exit;

//воспроизведение следующей песни
//если время проигрывания равно длине песни по времени,
if BASS_ChannelGetPosition(channel, 0)= BASS_ChannelGetLength(channel, 0) then
// в место if BASS_ChannelGetPosition(channel, 0)=BASS_ChannelGetLength(channel, 0) then
// можно сделать так: if BASS_ChannelIsActive(channel)=BASS_ ACTIVE_STOPPED then
// Практика показывает, что второй вариант более предпочтительный,
// т.к. проверка по длине трека иногда приводит к ошибкам в работе плеера.
begin
//то выбираем следующую песню из плейлиста

end;

//вызов визуализации
BASS_ChannelGetData(Channel, @FFTFata, BASS_DATA_FFT1024);
Draw (form1.PaintBox1.Canvas.Handle, FFTFata, 0,-5);

//устанавливаем позицию scrollbar в зависимоти от позиции трека
//устанавливаем позицию scrollbar в зависимости от позиции трека
scrollbar1.Position:=bass_channelGe tPosition(channel,0);
form1.scrollbar1.Position:=bass_cha nnelGetPosition(channel,0);

//время проигрывания трека
//считаваем сколько секунд прошло от начала воспроизведения
TrackPos:=BASS_ChannelBytes2Seconds (Channel, BASS_ChannelGetPosition(Channel,0)) ;
//считываем всю длину песню в секундах
TrackLen:=BASS_ChannelBytes2Seconds (Channel, BASS_ChannelGetLength(Channel,0));
//переводим секунды в часы
ValPos:=TrackPos / (24 * 3600);
ValLen:=TrackLen / (24 * 3600);
//Выводим данные о времени на форму в Label1 и Label2
form1.Label1.Caption:=FormatDateTim e('hh:mm:ss',ValPos);
form1.Label2.Caption:=FormatDateTim e('hh:mm:ss',ValLen);

//установка громкости звука
BASS_ChannelSetAttribute(Channel,BA SS_ATTRIB_VOL, form2.trackBar1.Position/10);
//установка баланса
BASS_ChannelSetAttribute(Channel,BA SS_ATTRIB_PAN, form2.Trackbar2.Position/5);


end;
Всё работает на form3 то-есть перемотка, а на форме 1 нет
Menmo вне форума Ответить с цитированием
Старый 03.11.2012, 21:46   #22
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от Menmo Посмотреть сообщение
Короче.. Вот мой код
procedure TForm3.ScrollBar1Scroll(Sender: TObject;
ScrollCode: TScrollCode; var ScrollPos: Integer);
begin

//устанавливаем позицию воспроизведения трека в зависимости от положения scrollbar
bass_ChannelSetPosition(Channel, scrollbar1.position, 0);
end;

procedure TForm3.Timer3Timer(Sender: TObject);
var FFTFata : TFFTData;
TrackLen, TrackPos: Double;
ValPos: Double;
ValLen: Double;
begin
//проверяем режим воспроизведения, если не Play то выходим
if mode<>play then Exit;

//воспроизведение следующей песни
//если время проигрывания равно длине песни по времени,
if BASS_ChannelGetPosition(channel, 0)= BASS_ChannelGetLength(channel, 0) then
// в место if BASS_ChannelGetPosition(channel, 0)=BASS_ChannelGetLength(channel, 0) then
// можно сделать так: if BASS_ChannelIsActive(channel)=BASS_ ACTIVE_STOPPED then
// Практика показывает, что второй вариант более предпочтительный,
// т.к. проверка по длине трека иногда приводит к ошибкам в работе плеера.
begin
//то выбираем следующую песню из плейлиста

end;

//вызов визуализации
BASS_ChannelGetData(Channel, @FFTFata, BASS_DATA_FFT1024);
Draw (form1.PaintBox1.Canvas.Handle, FFTFata, 0,-5);

//устанавливаем позицию scrollbar в зависимоти от позиции трека
//устанавливаем позицию scrollbar в зависимости от позиции трека
scrollbar1.Position:=bass_channelGe tPosition(channel,0);
form1.scrollbar1.Position:=bass_cha nnelGetPosition(channel,0);

//время проигрывания трека
//считаваем сколько секунд прошло от начала воспроизведения
TrackPos:=BASS_ChannelBytes2Seconds (Channel, BASS_ChannelGetPosition(Channel,0)) ;
//считываем всю длину песню в секундах
TrackLen:=BASS_ChannelBytes2Seconds (Channel, BASS_ChannelGetLength(Channel,0));
//переводим секунды в часы
ValPos:=TrackPos / (24 * 3600);
ValLen:=TrackLen / (24 * 3600);
//Выводим данные о времени на форму в Label1 и Label2
form1.Label1.Caption:=FormatDateTim e('hh:mm:ss',ValPos);
form1.Label2.Caption:=FormatDateTim e('hh:mm:ss',ValLen);

//установка громкости звука
BASS_ChannelSetAttribute(Channel,BA SS_ATTRIB_VOL, form2.trackBar1.Position/10);
//установка баланса
BASS_ChannelSetAttribute(Channel,BA SS_ATTRIB_PAN, form2.Trackbar2.Position/5);


end;
Всё работает на form3 то-есть перемотка, а на форме 1 нет
хаха. Очень смешно
у тебя перемотка и так на первой форме. Тут же по русски написано.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 03.11.2012, 21:49   #23
Menmo
Пользователь
 
Регистрация: 17.10.2012
Сообщений: 40
По умолчанию

Цитата:
Сообщение от саша40 Посмотреть сообщение
хаха. Очень смешно
у тебя перемотка и так на первой форме. Тут же по русски написано.
Да тут написанно и под первую и под 3 ю форму, но на первой форме скрол бар не матает, тоесть ползунок нельзя здвинуть как он идёт по песне (передвегается когда играет песя) его положение нельзя сменить..
Menmo вне форума Ответить с цитированием
Старый 03.11.2012, 21:53   #24
Menmo
Пользователь
 
Регистрация: 17.10.2012
Сообщений: 40
По умолчанию

Я по всякому пробывал, даже связывал position этих двух скролбаров, но тот который на форме 3 перематывает, а что на фформе 1 не работает
Menmo вне форума Ответить с цитированием
Старый 03.11.2012, 22:16   #25
BitHo0k
 
Регистрация: 23.05.2012
Сообщений: 4
По умолчанию

Мой плеер с исходниками (Delphi)
Изображения
Тип файла: jpg 2012-11-03_201221.jpg (21.5 Кб, 127 просмотров)
BitHo0k вне форума Ответить с цитированием
Старый 03.11.2012, 22:24   #26
Menmo
Пользователь
 
Регистрация: 17.10.2012
Сообщений: 40
По умолчанию

Цитата:
Сообщение от BitHo0k Посмотреть сообщение
У меня делфи7 старый, когда запускаю твой проект выдаёт кучу ошибок и в конечном счёте вообще не работает.
Menmo вне форума Ответить с цитированием
Старый 03.11.2012, 22:30   #27
BitHo0k
 
Регистрация: 23.05.2012
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Menmo Посмотреть сообщение
У меня делфи7 старый, когда запускаю твой проект выдаёт кучу ошибок и в конечном счёте вообще не работает.
Юзайте Delphi XE2,XE3 и AlphaControls v8.03
BitHo0k вне форума Ответить с цитированием
Старый 03.11.2012, 22:34   #28
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Автор у тебя паток где объявлен?

Автор, если у тебя паток объявлен только на третьей форме то позицыя патока там и будет менятся. Потому что нельзя передавать переменые через формы(а точнее меняь их).
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.

Последний раз редактировалось саша40; 03.11.2012 в 22:37.
саша40 вне форума Ответить с цитированием
Старый 03.11.2012, 22:35   #29
Menmo
Пользователь
 
Регистрация: 17.10.2012
Сообщений: 40
По умолчанию

в 3 форме (form3)
Menmo вне форума Ответить с цитированием
Старый 04.11.2012, 13:25   #30
Menmo
Пользователь
 
Регистрация: 17.10.2012
Сообщений: 40
По умолчанию

Цитата:
Сообщение от саша40 Посмотреть сообщение
Автор у тебя паток где объявлен?

Автор, если у тебя паток объявлен только на третьей форме то позицыя патока там и будет менятся. Потому что нельзя передавать переменые через формы(а точнее меняь их).
И что теперь делать?...
Menmo вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
mp3 плеер на основе библиотеки bass JuliaBelochka Помощь студентам 2 13.02.2013 22:54
Плеер на bass.dll dmitriegorovih Visual C++ 9 24.08.2012 00:16
ISPlayer --- Плеер основан на bass.dll VinTagE Мультимедиа в Delphi 20 27.07.2012 13:42
Как создать в Delphi mp3 плеер? Без использования bass.dll. megatronx Помощь студентам 2 10.03.2010 17:15
Ошибка при выхове функций Bass.dll из другой DLL SalasAndriy Общие вопросы Delphi 7 21.10.2009 23:36