FreeBasic
Главная
Вход
Регистрация
Воскресенье, 19.11.2017, 22:53Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » WinAPI » WinApi в freebasic » как при помощи WinApi воспроизвести поток из интернета
как при помощи WinApi воспроизвести поток из интернета
electrikДата: Четверг, 11.02.2016, 02:58 | Сообщение # 1
Майор
Группа: Друзья
Сообщений: 94
Репутация: 3
Статус: Offline
есть задача, воспроизвести mp3 поток из нета. знаю, что можно это сделать при помощи bass, fmod. с удовольствием бы сделал при помощи bass, но есть у bass некоторые заморочки. народ, обзавелся гарнитурами, и дергает их во время воспроизведения. bass и fmod не умеют автоматически переходить с карту на карту. можно написать костыли, но это всё бред. говорят, что можно както подгрузить компонент из windows media player, он всё умеет играть. пол ночи шарил по нету, толком ни чего не нашёл. может либа есть, которая читает поток из нета и выводит тупо через winmm? winmm отлично справляется с перетыком гарнитур.
 
WQДата: Четверг, 11.02.2016, 03:09 | Сообщение # 2
Подполковник
Группа: Пользователи
Сообщений: 139
Репутация: 5
Статус: Offline
Может, VLC? Там большие возможности
http://www.freebasic.net/forum/viewtopic.php?f=14&t=24028
 
electrikДата: Четверг, 11.02.2016, 15:07 | Сообщение # 3
Майор
Группа: Друзья
Сообщений: 94
Репутация: 3
Статус: Offline
про libvlc тоже читал, спасибо за ссылку, гляну. может подойдёт, ибо в будущем понадобится и реализовывать потоковое видео.
 
WQДата: Пятница, 26.02.2016, 14:47 | Сообщение # 4
Подполковник
Группа: Пользователи
Сообщений: 139
Репутация: 5
Статус: Offline
Как раз искал, чем можно воспроизводить звуки на linux с наиболее свободной лицензией и по возможности со статической линковкой(libvlc работает, но его надо доустанавливать, хочу немного облегчить пользователям жизнь)
Много чего есть, но ничего не подходит по эти параметрам, или просто не компилируется
Bass , FMOD - платные,  fbsound - не работает, автор прекратил поддержку 

Наткнулся на такую вещь:
libmpg123
http://www.freebasic.net/forum/viewtopic.php?f=14&t=24376
Под Win работает хорошо, и там в списке библиотек есть winmm, и вроде и потоки может воспроизводить.
  
А вот на linux не хочет работать, о чем Джоши и пишет, и у меня выдает ту же ошибку

Сейчас мучаю такую вещь как Gorilla Audio, freebasic бибиотеку видит, всяуие хэндлы звука больше 0, но воспроизведение не работает...
 
haavДата: Пятница, 26.02.2016, 16:57 | Сообщение # 5
Генерал-лейтенант
Группа: Администраторы
Сообщений: 793
Репутация: 34
Статус: Offline
Цитата WQ ()
fbsound - не работает, автор прекратил поддержку


Ну можно самому перекомпилировать, внеся некоторые правки. У меня просто Linux стоит 64х-битный, там по простому не получится, поскольку в сорцах много ассемблерных вставок, нужно будет почти весь код перепахивать. А на 32х-битной версии думаю проблем больших не будет. Я под 32х-битную винду для компиля 1.05 легко перекомпилил. Да там были места правок, но не смертельно smile


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
electrikДата: Среда, 04.05.2016, 01:11 | Сообщение # 6
Майор
Группа: Друзья
Сообщений: 94
Репутация: 3
Статус: Offline
Спасибо за mpg123, тоже знаю про неё, но незнал что умеет потоки играть. попробую. вопрос остаётся актуальный, ибо я завёл vlc, мы тут уже плеер написали, но у vlc есть тоже проблемы. при быстром переключении треков, любит он зависать,. я пробовал и обычный vlc плеер, зажимаешь кнопку плей и держишь её как дурак, и о, чудо!, звук зависает. видимо с подгрузкой из инета, у них ещё как-то не до отлажено. у fmod, нашёл как его в winmm загнать, тоже надо будет попробовать. а поповоду платности или бесплатности, bass и fmod, можно юзать в некоммерческих проектах, так что тут совесть чиста.
блин, не думал, что в 2016 году нет нормальных  либ воспроизведения потока из инета. на c#, можно конечно, но не пишу пока я на нем, да и совсем на .net завязываться не охото. думаю, что и не появится уже ни чего, ибо народ на .net ушли, а там уже давно всё написано.

Добавлено (14.04.2016, 14:10)
---------------------------------------------
а Gorilla Audioесть под винду? пойду посмотрю, она мне тоже попадалась.
я уже весь инет перешерстил, поэтому lib много на слуху.

Добавлено (14.04.2016, 17:45)
---------------------------------------------
посмотрел fmod, гарнитуры не проверял, но тоже не годится. на первой же записи из контакта отказался играть, заорал, что то про позицию и т.д. но это не со всеми файлами. mpg123 отлично справился, но тут писать посути свой плеер надо, он только раскодирует фреймы и может на звуковуху выводить. на pureBasic нет желания писать всё это. мой друг на этом языке лучше кодит, пришлось плеер на пурике писать.
поэтому я и ищу такую либу, который подсунул url, а она сама играет.

Добавлено (04.05.2016, 01:11)
---------------------------------------------
Всётаки vlc более или менее прогнули под нужные нам цели, вродь, почти не зависает. Чтоб не натыкались на наши грабли, скажу вам следующие вещи. в callback предназначенных для обработки vlc событий, старайтесь как можно меньше, а по возможности никогда, не вызывать функции vlc, так как по необъяснимым причинам, цикл оконных событий подвисает.
если в callback получаете какое-то значение, громкость, позиция трека и т.д, старайтесь делать так, чтоб при записи этихх значений в gui, не писались одинаковые значения, стоит сделать какой-нибудь prevValue и с ним сравнивать. незнаю почему, но когда, покрайней мере в пурике из vlc callback на TrackBarGadget посылать одинаковые значения, может повиснуть цикл оконных событий.
вообще, старайтесь аккуратно использовать callback с посылом собственных событий, чтоб не войти в бесконечную рекурсию.
если вы работаете с сетью, и в сетевом плеере сделали кнопки вперед, назад, реализуйте механизм задержки переключения треков, так как если бешаный юзер начнет тыкать быстро кнопку, могут быть зависоны. в нашем плеере такая задержка равна примерно 400 миллисекунд. это примерное значение, и не значит, что идеально будет работать везде, так как это зависит от скорости интернета и т.д. видел я сетевые плееры, где вообще треки полторы-две секунды переключаются, например, плеер для проигрывания музыки из контакта meridian. опенсурсный, но к сожалению для нас, написан на c#

 
WQДата: Пятница, 06.05.2016, 12:01 | Сообщение # 7
Подполковник
Группа: Пользователи
Сообщений: 139
Репутация: 5
Статус: Offline
Цитата electrik ()
если в callback получаете какое-то значение, громкость, позиция трека и т.д, старайтесь делать так, чтоб при записи этихх значений в gui, не писались одинаковые значения, стоит сделать какой-нибудь prevValue и с ним сравнивать. незнаю почему, но когда, покрайней мере в пурике из vlc callback на TrackBarGadget посылать одинаковые значения, может повиснуть цикл оконных событий.
В одном моем коде плеера через callback получается кадр видео. На чистом FB тормозило страшно, и я вынес эту часть кода в статическую библиотеку на C. Так работает нормально
 
Форум » WinAPI » WinApi в freebasic » как при помощи WinApi воспроизвести поток из интернета
Страница 1 из 11
Поиск: