Среда, 22.11.2017, 01:56
Приветствую Вас Гость

Не ошибается тот, кто ничего не делает.
Но и ничего не делать - ошибка.

Эмиль Кроткий

Меню сайта
Категории раздела
Работа с библиотеками BASS и DirectShow [14]
Статьи по написанию mp3 плеера, видеоплеера, работе с WEB камерой и т.д.
Форма входа

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0


















Тиц
Главная » Статьи » Мультимедиа » Работа с библиотеками BASS и DirectShow

Создание интернет радио с помощью библиотеки Bass.dll
И так открываем программу delphi и создаем форму. На форму кидаем:
1- Button
2- ComboBox
3- Label (в настройках кампонента значение Visible - False, в caption -> http://radio-1.avtograd.ru:8001/radio/2)

Интернет радио на Delphi.

В свойствах ComboBox->Items->TStrings пишем названия радиостанций, каждая с новой строки:

Юмор FM
Поместное Радио
Kino FM
Милицейская Волна
NRJ Russia
Радио Алла
Русское международное радио
Авторадио
Дорожное Радио
Радио Ваня
Радио Рекорд
Радио Шансон
Радио Метро

В Var добавляем переменную

stream: HSTREAM;

затем в обработчике событий OnCreate пишем:
BASS_Init(-1, 44100, 0, Handle, nil);

затем в обработчике событий OnDestroy пишем:
bass_free;

переходим к кнопки в обработчике событий OnClick пишем:
stream:=BASS_streamCreateURL(pansiChar(Label1.Caption), 0,0,nil, 0);

//если у вас Delphi 2009 или Delphi 2010 (использующая строки unicode), то пишем строку ниже
//stream:=BASS_streamCreateURL(pansichar(AnsiString(label1.Caption)), 0, BASS_STREAM_STATUS, nil, 0);
BASS_ChannelPlay(stream, false);


затем в обработчике событий ComboBox'а OnClick пишем:
BASS_ChannelStop(stream);

и в обработчике событий ComboBox'а OnChange пишем:
Case combobox1.ItemIndex of
0: label1.Caption:='http://radio-1.avtograd.ru:8001/radio/2';
1: label1.Caption:='http://radio-1.avtograd.ru:8001/radio/3';
2: label1.Caption:='http://radio-1.avtograd.ru:8001/radio/4';
3: label1.Caption:='http://radio-1.avtograd.ru:8001/radio/6';
4: label1.Caption:='http://radio-1.avtograd.ru:8001/radio/8';
5: label1.Caption:='http://radio-1.avtograd.ru:8001/radio/10';
6: label1.Caption:='http://radio-1.avtograd.ru:8001/radio/11';
7: label1.Caption:='http://radio-1.avtograd.ru:8001/radio/12';
8: label1.Caption:='http://radio-1.avtograd.ru:8001/radio/13';
9: label1.Caption:='http://radio-1.avtograd.ru:8001/radio/14';
10: label1.Caption:='http://radio-1.avtograd.ru:8001/radio/15';
11: label1.Caption:='http://radio-1.avtograd.ru:8001/radio/17';
12: label1.Caption:='http://radio-1.avtograd.ru:8001/radio/18';

Ну вот и все теперь запускаем программу и наслаждаемся)))
Исходник программы можно скачать здесь.
Еще один вариант интернет радио с исходниками и возможностью записи потока можно скачать здесь.




Категория: Работа с библиотеками BASS и DirectShow | Добавил: SpySpook (22.11.2011) E W
Просмотров: 8830 | Комментарии: 10 | Рейтинг: 5.0/1
Всего комментариев: 10
10  
Я все правильно сделал но ошибку выдаёт. И исходника скачать все равно ошибку выдаёт ??

8  
А как можно найти свои(местные радистанции)?

9  
Для этого нужно знать адрес потока вещания радиостанции в интернете и что бы этот поток поддерживался BASS. smile

6  
Как можно добавить управление громкости?

7  
Разместите на форме компонент TTrackBar, у меня trackbar1.
В событии OnCreate формы добавьте следующий код:
//первоначальные установки громкости для trackbar1
trackbar1.Min:=0;
trackbar1.Max:=10;
trackbar1.Position:=5;
А для события OnChange trackbar1 повесьте следующий код:
//установка громкости звука
BASS_ChannelSetAttribute(stream,BASS_ATTRIB_VOL, trackBar1.Position/10);
Должно работать. smile

4  
А где переименовать радио станции ?

5  
В свойствах ComboBox1-> Items-> TStrings. А вообще если вы собрались разрабатывать проект дальше, то лучше сделать, что то типа плейлиста, например как в уроке 4.1. по созданию OnLine TV видеоплеера. smile

2  
[Fatal Error] Unit1.pas(7): File not found: 'Bass.dcu'
4е делать то!?

3  
Добавьте файлы bass.dll и bass.pas в папку с проектом. Скачать данные файлы. smile

1  
Для возможности записи радио потока в mp3 файл после:
stream:=BASS_streamCreateURL(pansiChar(Label1.Caption), 0,0,nil, 0);
добавьте следующий код:
BASS_Encode_Start(stream, 'lame.exe --alt-preset standard - FileName.mp3', BASS_ENCODE_AUTOFREE {$IFDEF UNICODE} or BASS_UNICODE {$ENDIF}, nil, 0);
BASS_ChannelPlay(stream, false);
Кроме того вам придется скачать библиотеку bassenc и lame. Далее закинуть следующие файлы в папку с проектом:
bassenc.dll,
bassenc.pas,
lame.exe,
lame_enc.dll.
lame.exe предназначена для перекодировки звука в mp3. bassenc - для записи.
Не забудьте прописать в Uses модуль bassenc.
Скачать эти файлы можно из Интернета или здесь.
Да, забыл сказать поток пишется в файл FileName.mp3 (замените на свой). Для остановки записи киньте на форму кнопку и для события OnClick добавьте код:
BASS_Encode_Stop(stream);

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Наш опрос
Оцените мой сайт
Всего ответов: 532
Уголок общения



Copyright MyCorp © 2017Конструктор сайтов - uCoz