Мое любимое использование является "фильтром" и "уменьшает" операции.
Скажем, мы читаем файл, и только хотим строки, которые начинаются с "##".
def filter2sharps( aSequence ):
for l in aSequence:
if l.startswith("##"):
yield l
Мы можем тогда использовать функцию генератора в надлежащем цикле
source= file( ... )
for line in filter2sharps( source.readlines() ):
print line
source.close()
, уменьшать пример подобен. Скажем, у нас есть файл, где мы должны определить местоположение блоков <Location>...</Location>
строки. [Не HTML-тэги, но строки, которые, оказывается, выглядят подобными тегу.]
def reduceLocation( aSequence ):
keep= False
block= None
for line in aSequence:
if line.startswith("</Location"):
block.append( line )
yield block
block= None
keep= False
elif line.startsWith("<Location"):
block= [ line ]
keep= True
elif keep:
block.append( line )
else:
pass
if block is not None:
yield block # A partial block, icky
Снова, мы можем использовать этот генератор в надлежащем для цикла.
source = file( ... )
for b in reduceLocation( source.readlines() ):
print b
source.close()
идея состоит в том, что функция генератора позволяет нам фильтровать или уменьшать последовательность, производя другую последовательность одно значение за один раз.
Протокол потоковой передачи в реальном времени ( RTSP ) - это протокол управления сетью, разработанный для использования в системах развлечений и связи для управления серверами потоковой передачи мультимедиа. Протокол используется для установления и управления медиа-сессиями между конечными точками. Клиенты медиа-серверов выдают VCR-подобные команды, такие как воспроизведение и пауза, чтобы упростить управление воспроизведением медиа-файлов с сервера в режиме реального времени.
Протокол обмена сообщениями в реальном времени ( RTMP ) изначально был проприетарным протоколом, разработанным Macromedia для потоковой передачи аудио, видео и данных через Интернет, между проигрывателем Flash и сервером.
Я бы использовал HTTP для потоковой передачи MP3.
Они оба являются протоколами для потокового мультимедиа и на высоком уровне достигают одного и того же - задают стандарт для потокового мультимедиа. Хотя RTMP был разработан и принадлежал Adobe до того, как был обнародован, тогда как RTSP был публичным стандартом с самого начала. Поскольку RTMP в основном используется проигрывателем Flash, я предполагаю, что класс проигрывателя Android Media использует потоки RTSP.