Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.08.2009, 20:06
... вне форума Посмотреть профиль Отправить личное сообщение для ... Найти все сообщения от ...
  № 1  
Ответить с цитированием
...

Регистрация: Aug 2009
Сообщений: 7
По умолчанию Поиск строки в stream потоке

Здравствуйте.

Прошу совета у профессионалов на этом форуме. Тема AS3.

Имеем: stream поток (онлайн музыка - но это не принципиально).
Необходимо: из этого stream потока в реальном времени искать по регулярному выражению кусочек текста (представлен в человеческом виде)

Т.е. подробнее... Загружаю stream поток и ищу в нем теловекоосмысленный кусочек текста среди абракадабры в РЕАЛЬНОМ времени. Этот кусочек текста через некоторое время снова появляется (этот кусочек текста и есть название начинающейся играть музыки).

Так вот, как реализовать в stream потоке поиск этого текста по заданной регулярке (саму регулярку составил, вопрос не в регулярке), причем поиск должен быть постоянным от старта до закрытия флешки!

Приведу пример куска stream потока аудио, который получает флешка. Вам станет понятно о чем идет речь:
Цитата:
.õGã..†.’m7g.*r-,”SÊe]ÿû².î..Åc×»/Cr“Í..eˆn.¹Ÿm¬=-ê72íõ„™½dOý]ÍÕURhL잌y$.*ÊÅOŠm-“VÊOa´H“ד¹9ïC.àª÷˜•.G=F:_-#'2–Á±E.StreamTitle='xxx @ yyy';........yz…åD.,X¦Iz‹l2*0ñ£.4Ã�4ó=´ÙÙù´q@ùžÊ
Заранее спасибо

Добавлено через 56 секунд
Буду очень благодарен если вы приведете кусочек кода на AS3, который это реализует, остальное сам додумаю!

Старый 07.08.2009, 20:27
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 2  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
А Вы случаем не ID3 тэги mp3 файла прочитать хотите???
просто больше по-моему нигде не бывает текста в абракадабре =)
__________________
...вселенская грусть

Старый 07.08.2009, 20:29
... вне форума Посмотреть профиль Отправить личное сообщение для ... Найти все сообщения от ...
  № 3  
Ответить с цитированием
...

Регистрация: Aug 2009
Сообщений: 7
Да, я пытался их прочитать с помощью id3, но это не id3 tags, они стандартным sound.id3 не читаются из аудио потока. Это icy сервер посылает такой тег посреди потока

Старый 07.08.2009, 20:31
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
String.fromCharCode() вам в помощь, ну, это если текст латиницей, а если нет - то для юникодов можно попробывать искать BOM, но если и этого нет, и текст в какой-нибудь ANSI кодировке, но не латиницей - тогда никак.
__________________
Hell is the possibility of sanity

Старый 07.08.2009, 20:39
Аллиас вне форума Посмотреть профиль Отправить личное сообщение для Аллиас Найти все сообщения от Аллиас
  № 5  
Ответить с цитированием
Аллиас
 
Аватар для Аллиас

Регистрация: May 2009
Сообщений: 63
Этот код выведет "xxx" и "yyy" из подстроки "StreamTitle='xxx @ yyy'", если она конечно в вашем "аудиопотоке" содержится:
Цитата:
var str:String = ".õGã..†.’m7g.*r-,”SÊe]ÿû².î..Åc×»/Cr“Í..eˆn.¹Ÿm¬=-ê72íõ„™½dOý]ÍÕURhL잌y$.*ÊÅOŠm-“VÊOa´H“ד¹9ïC.àª÷˜•.G=F:_-#'2–Á±E.StreamTitle='xxx @ yyy';........yz…åD.,X¦Iz‹l2*0ñ£.4Ã�4ó=´ÙÙù´q@ùžÊ ";
//метод match() возвращает массив с текстом подходящим под регулярное выражение
//где [0] - весь совпавший текст, а [1], [2], [3]... и.т.д - это текст
//в первых, вторых, третьих сохраняющих скобках соответственно.
var matches:Array = str.match(/StreamTitle='(.+) @ (.+)'/);
//собственно результат парсинга
trace(matches[1] + " "+ matches[2]);
Правда я не знаю может ли Flash преобразовать аудиопоток к строке подобного вида...
__________________
Все не так просто, как кажется... все гораздо проще...

Старый 07.08.2009, 20:50
... вне форума Посмотреть профиль Отправить личное сообщение для ... Найти все сообщения от ...
  № 6  
Ответить с цитированием
...

Регистрация: Aug 2009
Сообщений: 7
Цитата:
Сообщение от wvxvw Посмотреть сообщение
String.fromCharCode() вам в помощь, ну, это если текст латиницей, а если нет - то для юникодов можно попробывать искать BOM, но если и этого нет, и текст в какой-нибудь ANSI кодировке, но не латиницей - тогда никак.
Цитата:
Этот код выведет "xxx" и "yyy" из подстроки "StreamTitle='xxx @ yyy'", если она конечно в вашем "аудиопотоке" содержится:
Цитата:
Вы немного не о том...
wvxvw, это вообще не то.
Аллиас, это вы привели код поиска по regexp в статичной строке, и еще, регулярки меня не интересуют

Мне нужна помощь с точки зрения технической реализации поиска строки в непрерывном потоке. Представим этот поток как поток разных символов. Как реализовать поиск в нем, непрерывно, динамически?! Он же реалтайм, а не просто статичная неизменная строка символов!... я просто пока не додумался, да и в AS3 я не силен особо, только вот изучил, пытаюсь, пробую, и сразу такая задача... ппц.

Старый 07.08.2009, 21:26
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 7  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Нету в AS3 непрерывного потока - все, что вы будете получать - это событие DATA либо в сокете либо в URLStream из которого сможете получить данные определенной длины. проблема в том, что ваша искомая подстрока может оказаться разбитой на части - для этого вам прийдется проверять начало и конец сообщения на возможное совпадение. Но вы вполне можете "неугадать", особенно, если диапазон разрешенных символов в искомой строке очень широкий, и чем он больше, тем меньше вероятность, что у вас получится что-то рабочее.
__________________
Hell is the possibility of sanity

Старый 07.08.2009, 21:29
Аллиас вне форума Посмотреть профиль Отправить личное сообщение для Аллиас Найти все сообщения от Аллиас
  № 8  
Ответить с цитированием
Аллиас
 
Аватар для Аллиас

Регистрация: May 2009
Сообщений: 63
На самом деле очень необычная задача. Вообще фраза "строка в аудиопотоке", воспринимается с недоверием (ну откуда взяться тексту в звуке?). Возникает единственное предположение, что в этом самом потоке, записано без изменений название файла, который транслируется (предположим это песня, например из Вконтакте), но если это название, то оно у одного файла должно оставаться постоянным, зачем тогда реалтайм поиск? Ну а если это скажем субтитры для видео (единственный вид текстовой информации который более менее подходит под описание задачи), то вряд ли они записаны а аудиопотоке.

В общем вы уверены, что такое можно сделать во Flash ?

Потому-что я например не представляю, чтобы Flash использовался для подобного.
__________________
Все не так просто, как кажется... все гораздо проще...

Старый 07.08.2009, 21:33
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 9  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
@Аллиас:
Это почему же нельзя - так примерно записывается метадата / опорные-точки в потоковом видео, они как раз пишутся вместо одного из звуковых каналов.
__________________
Hell is the possibility of sanity

Старый 07.08.2009, 21:48
... вне форума Посмотреть профиль Отправить личное сообщение для ... Найти все сообщения от ...
  № 10  
Ответить с цитированием
...

Регистрация: Aug 2009
Сообщений: 7
Дело в том, что есть десктопная программулина, которая тянет онлайн радио (тобишь потоковое аудио), так вот, щапускаю я CommView и трассирую поток, получаемый программой. Понятное дело поток идет непрерывный, абракадабра, все как положено. НО вот во время смены трека icy сервер (это популярный сервер для онлайн радиотрансляций) передает прямо в этом потоке вот такой вот параметр StreamTitle='xxx @ yyy'. Так вот мне надо этот поток как бы просмотривать регуляркой.

Цитата:
ну откуда взяться тексту в звуке?
на самом деле ХЗ, но так оно и есть на самом деле!

Цитата:
в этом самом потоке, записано без изменений название файла
, нет, не название файла. Шаблон такой Артист @ Название_трека (причем как английскими буквами, так и русскими).

wvxvw, если можете, представьте, пожалуйста, свою реализацию проверки стрим потока..

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:47.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 02:47.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.