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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2011, 11:04   #1
Mr_F
Новичок
Джуниор
 
Регистрация: 06.07.2011
Сообщений: 2
По умолчанию bass.dll аварийное завершение загрузки музыки из сети

Пишу плеер для прослушивания музыки из сети и столкнулся с такой проблемой:
если пользователь, у которого маленькая скорость интернета, сначала запустит воспроизведение файла из сети(через
Код:
 Channel := BASS_StreamCreateURL(TrackUrl, 0, BASS_STREAM_STATUS,
    @StatusProc, 0);
), а потом, не дождавшись когда начнет играть музыка, запустит воспроизведение локального файла (через
Код:
Channel := BASS_StreamCreateFile(False, TrackUrl, 0, 0, 0
    {$IFDEF UNICODE} or BASS_UNICODE {$ENDIF});
), то получается что играет два файла одновременно. А BASS_ChannelStop(Channel); останавливает только первый запущенный файл. Естественно BASS_ChannelStop(Channel); запускается перед каждым воспроизведением, но почему то не срабатывает. Можно ли как то прервать загрузку из сети? Или подскажите что в этом случае лучше сделать
Mr_F вне форума Ответить с цитированием
Старый 21.07.2011, 13:57   #2
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

а так??? BASS_StreamFree(hstream)
cargo29 вне форума Ответить с цитированием
Старый 22.07.2011, 10:51   #3
Mr_F
Новичок
Джуниор
 
Регистрация: 06.07.2011
Сообщений: 2
По умолчанию

BASS_ChannelStop и BASS_StreamFree не помогают. Они не срабатывают во время буферизации, а срабатывают только после того, когда музыка уже под грузилась и начинает играть. Может есть у кого какие идеи как с этим справиться?
Mr_F вне форума Ответить с цитированием
Старый 16.08.2013, 03:19   #4
Delphi_ProGer
Форумчанин
 
Регистрация: 30.10.2010
Сообщений: 524
По умолчанию

Пожалуй, подниму эту тему.
Есть код создания потока(пример):
Код:
chan:=Bass_StreamCreateURL(...);
Этот код выполняеться в отдельном потоке(как в демке NetRadio), но если я вдруг захочу прекратить подключение, то мысли, как тупо TerminateThread() у меня нет.
CallBack-функции действительно не срабатывают, пока Bass не подключиться к ресурсу. А Bass_ChannelFree() не даст результата, так как поток ещё "в процессе создания", тоесть равен nil.
Какие у Вас идеи по этому поводу?

Последний раз редактировалось Delphi_ProGer; 16.08.2013 в 03:22.
Delphi_ProGer вне форума Ответить с цитированием
Старый 16.08.2013, 19:42   #5
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Попробуйте блокировать кнопку воспроизведения локального файла(если оно так). Просто свойство Enabled:=false;
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 16.08.2013, 19:45   #6
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

А ваще лучше так:
Код:
if BASS_ChannelIsActive(Channel)=BASS_ACTIVE_PLAYING then 
BASS_ChannelStop(Channel);
if Channel<>0 then Bass_StreamFree(Channel);
Channel:=BASS_StreamCreateFile(...);
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при выхове функций Bass.dll из другой DLL SalasAndriy Общие вопросы Delphi 7 21.10.2009 23:36
CppWebBrowser, проблема поймать завершение загрузки страницы Time Общие вопросы C/C++ 0 22.08.2009 23:37
WebBrowser1 завершение загрузки Черничный Компоненты Delphi 10 26.08.2008 01:32
микшер на два потока в проигрывателе музыки. проигрыватель сделан на основе библиотеки Bass.dll D-fens Мультимедиа в Delphi 4 08.06.2007 20:36