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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.10.2011, 13:32
ART ART вне форума
Продвинутый
 
Регистрация: 13.02.2006
Адрес: Магнитогорск
Сообщения: 669
Репутация: 14745
По умолчанию Ошибка с bass.dll

Если убрать @StatusProc и поставить nil, то все воспроизводится, но если оставить - вылазит Access violation. Что я делаю не так?

Код:
var
 stream: HSTREAM;

procedure StatusProc(buffer: pointer; length: cardinal; user: pointer);
begin
// 
end;

procedure TForm1.play;
var
i: integer;
f:PChar;
begin
 f := 'http://blabla.mp3';
 stream := BASS_StreamCreateURL(f, 0, BASS_STREAM_STATUS, @StatusProc, 0);
 BASS_ChannelPlay(stream, true);
end;
Ответить с цитированием
  #2  
Старый 09.10.2011, 14:13
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

в если в конце объявления функции поставить stdcall
и еще 2 последних параметра имеют тип DWORD

Последний раз редактировалось Pilot_Red, 09.10.2011 в 14:16.
Ответить с цитированием
  #3  
Старый 09.10.2011, 16:09
ART ART вне форума
Продвинутый
 
Регистрация: 13.02.2006
Адрес: Магнитогорск
Сообщения: 669
Репутация: 14745
По умолчанию

Спасибо. И если можно еще вопрос:

Получаю размер с помощью

ProgressBar1.Max := BASS_ChannelGetLength(stream, BASS_POS_BYTE);

И в потом, в таймере BASS_ChannelGetPosition(stream, BASS_POS_BYTE); все время возвращает ноль. Как узнать текущую позицию в треке? Если что то делать с буфером внутри StatusProc программа виснет и все.
Ответить с цитированием
  #4  
Старый 09.10.2011, 17:21
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

ART, излазил все! инет говорит что все должно работать
Потом решил у себя проверить. И каково было мое удивление, когда я увидел быстро меняющуюся метку, отображающую позицию трека! Т.е. у меня арбайтен!

Проверял на первом попавшимся треке http://music.karelia.pro/?path=Unsorted%2F_DJ%20MIX%20%26%20Electronic%20Mu sic%2FDJ%20Antony%20-%20100%25%2F01%20Martin%20Solveig%20-%20Rocking%20Music%20%28Joey%20Negro%20Dub%20Mix%2 9.mp3
Ответить с цитированием
  #5  
Старый 09.10.2011, 21:39
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Код:
var
  TimeAll,
  TimeCur : DWORD;
  Len     : QWORD;
...
  Len     := BASS_ChannelGetPosition(Channel, BASS_POS_BYTE);
  TimeCur := Trunc(BASS_ChannelBytes2Seconds(Channel, Len));
  TimeAll := Trunc(BASS_ChannelBytes2Seconds(Channel, BASS_ChannelGetLength(Channel, BASS_POS_BYTE)));
TimeCur - Сколько проиграно
TimeAll - Вся длина

Два архива с NetRadio (Delphi, ASM), когда-то переделывал из С для Ian Luck-а.
Вложения
Тип файла: rar netradio.api.rar (20.3 Кбайт, 6 просмотров)
Тип файла: rar netradio.rar (8.9 Кбайт, 10 просмотров)
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.

Последний раз редактировалось angvelem, 10.10.2011 в 02:40.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter