Держи wwc обновлённую версию! version.2 скрипт вывода кириллицы через Icecast2
Предыдущий скрипт работал у меня через обычные деки А,В. чем создавал лишний текст в истории плейлистов
с такой строкой как эта: ..//192.168.0.02/samPHPweb/recordsms.php тем самым создавая ненужный мусор
в этой версии я изменил работу через дополнительные деки и избавился от ненужного мусора в истории плейлистов.
Внимание! это мои настройки PAL скрипта, возможно нужно будет изменить путь к файлам, вашего Веб сервера.
var Song : TSongInfo; // для функции выключателя по типу S
const Filesongtitle = 'C:\www\htdocs\samPHPweb\recordsms.txt'; // Путь к текстовому файлу
var UpdSong : TSongInfo;
var Banners : TStringList;
var LinePos : Integer;
{------------------------------------------------------------------------------}
var P : TPlayer;
var URL : String;
// эту строчку пока отключаем
//URL := 'http://192.168.0.02/samPHPweb/recordsms.php'; // Путь к файлу PHP
{------------------------------------------------------------------------------}
PAL.Loop := True;
PAL.WaitForPlayCount(1); // запуск скрипта после завершения очередного трека
PAL.WaitForTime(T['+00:00:01']); // 1-3 сек. задержка выполнения
{------------------------------------------------------------------------------}
{функция выключателя сценария по типу S}
if ActivePlayer <> nil then
begin
Song := ActivePlayer.GetSongInfo();
if Song['songtype'] = 'S' then
begin // начало выполнения сценария
{------------------------------------------------------------------------------}
{-- загрузка URL страницы (PHP скрипта) для записи в текстовый файл --}
P := SoundFX; // через что играть
if P <> nil then
begin
{--}Queue.AddFile(URL, ipTop);
{--}SoundFX.QueueSong(Queue.NextInQueue);
{--}SoundFX.Play; // Воспроизведение через Aux1 или SoundFX
end;
{------------------------------------------------------------------------------}
end;
end; // конец выполнения сценария
{------------------------------------------------------------------------------}
// второй сценарий
PAL.WaitForTime(T['+00:00:06']); // 6-7 сек. задержка выполнения
{функция выключателя сценария по типу S}
if ActivePlayer <> nil then
begin
Song := ActivePlayer.GetSongInfo();
if Song['songtype'] = 'S' then
begin // начало выполнения сценария
{------------------------------------------------------------------------------}
// создаём вывод баннера в эфир
{--}UpdSong := TSongInfo.Create;
{--}Banners := TStringList.Create;
{------------------------------------------------------------------------------}
{-- загрузка текстового файла --}
{--}if FileExists(Filesongtitle) then // чтение
{--}Banners.LoadFromFile(Filesongtitle); // загрузка
{--}UpdSong['title'] := Banners[LinePos]; // текст из файла
{--}Encoders.SongChange(UpdSong); // вывод через радио-поток
{------------------------------------------------------------------------------}
end;
end; // конец выполнения сценария
{------------------------------------------------------------------------------}
Banners.Free; // Очистить информацию после кодирования
UpdSong.Free; // Очистить информацию после кодирования
{------------------------------------------------------------------------------}
хочу обратить внимание,
этот код, только для проверки работоспособности вывода русского текста он не будет выполнять полную функцию без связки с PHP
итак wwc, если русский текст из файла recordsms.txt который ты создал, проходит через Icecast2 сервер и у тебя всё получилось!
тогда позже, выложу PHP скрипт для автоматической записи текстового файла.
важно! (не забыть проверить что текстовый файл создан в кодировке UTF-8 иначе ничего не получиться).
ещё кое-что, возможно возникнет вопрос почему я использую старую версию samPHPweb 4.3.6, сразу отвечаю с новой у меня
не получилось! так как не силён в PHP также как и PAL, а методом тыка ... всё получилось и работает на 100%
жду откликов! Удачи wwc!
Отредактировано wisher (27-11-2017 17:19:07)