Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> BASS интернет радио 
:(
    Опции темы
sssssss7
Дата 12.2.2009, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 3.2.2009

Репутация: нет
Всего: нет



Всем здрасте!
Пытаюсь при помощи delphi 2009 и библиотеки BASS 2.4 сделать простейшее интернет радио и столкнулся со следующей проблемой:

Код

procedure TForm1.Button1Click(Sender: TObject);
var
  channel:cardinal;
begin

BASS_Init(-1, 44100, 0, application.Handle, nil);

Channel := BASS_StreamCreateURL ('http://ware.catv.ext.ru:8131/radioshock128.mp3',0,0,nil,0);

BASS_ChannelPlay(Channel, False);

end;


При задание вместо url станции edit1.text:
Код

Channel := BASS_StreamCreateURL (edit1.text,0,0,nil,0);

ругается [DCC Warning] Unit1.pas(51): W1044 Suspicious typecast of TCaption to PAnsiChar 

после я задаю PAnsiChar(edit1.text)

Код

Channel := BASS_StreamCreateURL (PAnsiChar(edit1.text),0,0,nil,0);


ошибка пропадает но при занесение в edit1.text адресс станции... молчит

и еще ВАЖНОЕ... не один из примеров поставляемых с библиотекой не проигрывает mp3 загружаю пример inetradio он не работает находит ошибку в строке meta := BASS_ChannelGetTags(chan, BASS_TAG_META); ошибка [DCC Error] Unit1.pas(86): E2010 Incompatible types: 'AnsiChar' and 'Char' может проблема в delphi 2009 или Vistе короче пытался исправить не чего не получается((( помогите плийз

ЗЫ.. как проигрывать плайлист станции пример:http://somafm.com/secretagent24.pls 

Это сообщение отредактировал(а) sssssss7 - 12.2.2009, 13:54
PM MAIL   Вверх
Snowy
Дата 12.2.2009, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



Код

var
  url: AnsiString;
begin
  url := edit1.text;
  Channel := BASS_StreamCreateURL (PAnsiChar(url),0,0,nil,0);
Что-то вроде этого. Напрямую WideString к PAnsiChar приводить нельзя.
Аналогично приводится и WideChar к AnsiChar.
Сначала переводишь из Wide в Ansi, а только потом применяешь приведение к указателю.
Вобщем проблема в том, что в 2009-й строки юникодные.
И их нельзя напрямую приводить к анси указателям. Сначала саму строку/символ нужно перевести из юникода.
PM MAIL   Вверх
sssssss7
Дата 12.2.2009, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 3.2.2009

Репутация: нет
Всего: нет



Спасибо!!! работает!


Хотелось бы в этой теме ответить на все стандартные вопросы по поводу интернет радио и воспроизведение потоков из интернета... искал подобную инфу не нашел тока на буржуйских форумах чтото есть но я не силен в английском((


1. Кто подскажет как загрузить  http://somafm.com/secretagent24.pls 
как я понял открыв этот файл .pls надо по стандартным тегам вытягивать информацию из него, но как не пойму(( как работать с BASS_ChannelGetTags ???
или как проигрывать asx плейлисты??? там ссылка на сервер mms://spb.radioshock.ru/radioshock64 BASS не проигрывает... 
не пойму  smile 

2.Как узнать "качество" потока (как правильно обозвать не знаю) 64 kbp, 124kbp 

3.Как отоброзить в прогрессбаре подключение к серверу?



PM MAIL   Вверх
Snowy
Дата 12.2.2009, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



1.
pls - Это обычный ini файл.
numberofentries=1 - это количество файлов
File1=http://voxsc1.somafm.com:8082 - это путь к файлу. Именно его и нужно играть
Title1=(#1) SomaFM: Secret Agent (24k mp3): The soundtrack for your stylish, mysterious, dangerous life. For Spies and PIs too! - это название. Его нужно показывать
Length1=-1 - продолжительность. У потока её нет.
Если numberofentries > 1, то будут File2, File3 и т.д.
Но в твоём случае файл будет только один.
Тэгов у потока тоже нет. 
BASS_ChannelGetTags(Handle, BASS_TAG_HTTP);

2. BASS_ChannelGetInfo(Handle, BASS_CHANNELINFO);

3. Какой ещё прогресс подключения? Нет никакого прогресса. Есть буферизация. А подключение - оно моментное. Раз и подключился...

4. Модератор: Пожалуйста, один топик - один вопрос.
PM MAIL   Вверх
sssssss7
Дата 12.2.2009, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 3.2.2009

Репутация: нет
Всего: нет



Цитата
2.Как узнать "качество" потока (как правильно обозвать не знаю) 64 kbp, 124kbp


неточно выразился... я имел ввиду  как узнать битрейт... нашел в хелпе

Код

float time=BASS_ChannelBytes2Seconds(stream, BASS_ChannelGetLength(stream, BASS_POS_BYTE)); // playback duration
DWORD len=BASS_StreamGetFilePosition(stream, BASS_FILEPOS_END); // file length
DWORD bitrate=(DWORD)(len/(125*time)+0.5); // bitrate (Kbps) 


но пременить не могу.. выдает ошибку что то с переменными [DCC Error] Unit1.pas(64): E2010 Incompatible types: 'Cardinal' and 'Extended'

подскажите как вывести инфу label1.caption:=bitrate

ps...Пожалуйста, один топик - один вопрос. топик назвал "BASS интернет радио" , в конце торжествено клянусь выложить полное разжеванное описание по теме для таких как я))) новичков



Это сообщение отредактировал(а) sssssss7 - 12.2.2009, 17:44
PM MAIL   Вверх
Snowy
Дата 12.2.2009, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



Так это пример на сях.
В дельфи нельзя присвоить целому дробное.
Автоматический тайпкаст тут не происходит.
Нужно самому округлять.
bitrate := Round(len/(125*time));
А для примеров советую TBassPlayer
Там это всё реализовано - смотри, да списывай...
PM MAIL   Вверх
sssssss7
Дата 12.2.2009, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 3.2.2009

Репутация: нет
Всего: нет



Правильно ошибся когда в google забил ass а не Bass)

Уверен что всё легко и просто можно сделать только как, это тайна покрытая мраком для новичка... Пример inetradio который прилогается к Bass вообще не понятно для кого сделан... функций использующих библиотеку bass от силы 3-4шт.. не расписано как что куда и откуда(((... тоненький хелп туда же вместе с примером)... информации в инете просто нет.  

1.Как можно отобразить процес буферизации в прогрессбаре или лейбле (уже не важно где главное как)...

2.Как загрузить pls считать и вывести от туда инфу в лейбле (я имею ввиду ср-вами Bass, понятно что можно скачать этот файл и подключить его как ini и уже от туда читать)  

Гуру Дельфи помогите плиийз... smile  


PM MAIL   Вверх
Bodrox
Дата 27.4.2009, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 14.4.2004
Где: Чебоксары

Репутация: нет
Всего: нет



Пример отличный идёт с самим BASS. Воспроизведение плейлиста с локалки работает, с инета - работает, просто канал один указал работает smile. Вот у меня другой вопрос - есть плейлист с адресами инет-радио. Как переключать-то на другое радио из этого же плейлиста?

Это сообщение отредактировал(а) Bodrox - 27.4.2009, 19:59
PM MAIL   Вверх
Razzor
Дата 26.8.2009, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 5.7.2009

Репутация: нет
Всего: нет



А кто знает как записать интернет радио в файл. Желательно использовать bass.dll На одном из сайтов читал что вроде есть спец библиотека для записи интернет радио потока, вроде тоже от bass
PM MAIL   Вверх
AndreyZ53
Дата 6.9.2009, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 22.8.2008

Репутация: 1
Всего: 2



Здравствуйте, не стал создавать тему новую решил здесь спросить, так как вопрос связан с радио на основе bass.dll. Как получить название радиостанции, процесс буферизации? 

Это сообщение отредактировал(а) AndreyZ53 - 6.9.2009, 13:44
--------------------
https://itbases.ru/
PM MAIL WWW Skype   Вверх
Ahmund
Дата 20.10.2011, 13:20 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 18.10.2011

Репутация: нет
Всего: нет



Счас столкнулся со следуещим вопросом, как вывести название играющей песни, собствено нашол в библиотеке функцию для вывода BASS_ChannelGetTags написал следуищий код для вывода:
Код

var
  meta: PAnsiChar;
begin
  meta := BASS_ChannelGetTags(chan, BASS_TAG_META);
   Label1.Caption:= (PAnsiChar(AnsiString(meta))); 
end;  


Название выводит но иероглифами, как правильно задать кодировку чтоб выводило нормальные символы?
Пробывал еще так: Label1.Caption := String(PAnsiChar(meta));
пошли уже другие иероглифы, как правильно сделать кодировку? подскожите? смотрел в демке там такаяж кодировка как и уменя, но выводится все нормально 
PM MAIL   Вверх
jhonyxakep
Дата 21.10.2011, 13:45 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Divide Et Impera
**


Профиль
Группа: Участник
Сообщений: 983
Регистрация: 7.4.2009
Где: Что, Когда?

Репутация: нет
Всего: 8



В примере BASS текст обновляется через SendMessage, оттого они сколько раз строку и конвертируют.


Цитата(Ahmund @  20.10.2011,  13:20 Найти цитируемый пост)
 Label1.Caption:= meta;


?

Это сообщение отредактировал(а) jhonyxakep - 21.10.2011, 13:45
PM MAIL ICQ   Вверх
Coobick
Дата 23.11.2011, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 16.8.2010
Где: Владимир

Репутация: нет
Всего: 1




Модератор: Сообщение скрыто.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.1096 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.